<
  • Главная
Статьи

Przekieruj .htaccess: przekieruj do innej domeny i przekieruj na inną stronę

  1. Przekierowanie .htaccess: stałe przekierowanie, 301
  2. Jak skonfigurować przekierowanie na www (lub bez www)
  3. Jak utworzyć .htaccess
  4. Plik .htaccess nie działa
  5. Czy istnieje jakiś analog .htaccess w nginx?
  6. Wydawca
  7. x64 (alias andi)

Dobra niedziela!

Bardzo często na forach można znaleźć pytania dotyczące pliku .htaccess - pliku konfiguracyjnego serwera WWW Apache. Główną przeszkodą jest to, że deweloper nie miał wygodnej konfiguracji dla użytkownika końcowego (dystrybucja nie zawiera powłoki dla instalacji wizualnych przy użyciu pól wyboru, list rozwijanych itp.), Ale administratorzy serwerów radzą sobie z tym zadaniem niezwykle, będąc zadowoleni z „mana” (od zespołu Linuksa - człowiek - szybki poradnik od programistów lub w tym przypadku od specjalistów do specjalistów).

W większości przypadków wymagane są proste manipulacje: bezwarunkowe przekierowanie do innej witryny lub przekierowanie z jednego miejsca do drugiego (powiedzmy, gdy zmienił się adres URL sekcji). I każda osoba zaczyna wierzyć, że nigdzie nie ma problemu, a nawet nie ma sensu szukać rozwiązania w Internecie i przeszukiwać forum. Zobaczmy, czym naprawdę nie są te problemy.

Zobaczmy, czym naprawdę nie są te problemy

Przekierowanie .htaccess: stałe przekierowanie, 301

Ta rzecz ma inne nazwy. Neponyatki może spowodować, że ta liczba - dlaczego 301? Istota leży w samym protokole HTTP, który odpowiada na żądania klientów określonym kodem statusu. Kod 404 Not Found jest znany prawie wszystkim. Kod 200 OK jest prawie nieznany, ale oznacza to, że wszystko jest w porządku, a dokument zostanie wyświetlony w przeglądarce. Ale kod 301 Moved Permanently oznacza, że ​​dokument został ostatecznie przeniesiony na nowy adres. Jest to często nazywane przekierowaniem, chociaż całkowita pula odpowiedzi jest oznaczona jako - 3xx: Przekierowanie .

Apache ma kilka opcji przekierowań. Moduł mod_rewrite zapewnia doskonały mechanizm pracy z przekierowaniami, aw przyszłości użyję go w przykładach. Moduł mod_alias ma również dyrektywy dotyczące przekierowań z określonego adresu lub z adresu, który pasuje do wyrażenia regularnego:
Przekieruj na stałe / http://newsite.ru/
RedirectMatch permanent. * Http://newsite.ru/
Ale mod_rewrite ma dodatkowe opcje przekierowania, więc najlepiej go użyć (IMHO).

Ogólnie rzecz biorąc, w przypadku bezwarunkowego przekierowania zewnętrznego (nazwijmy to użytkownika), w którym przeglądarka automatycznie przekierowuje na inną stronę, zazwyczaj niezauważalnie dla użytkownika (zmienia się pasek adresu), można umieścić taki kod w .htaccess:
RewriteEngine On
RewriteRule. * Http://newsite.ru/ [L, R = permanent]
W pierwszym wierszu znajduje się mechanizm modułu mod_rewrite , który może robić wszystko z adresami. Nazwijmy tę konwersję adresu URL warunkami w locie. Druga linia bezpośrednio definiuje regułę konwersji, w powyższym przykładzie wszystkie żądania zostaną przekierowane na http://newsite.ru/. Flagi są umieszczone w nawiasach kwadratowych: L - ostatnia (Ostatnia) reguła, R - typ przekierowania (Przekierowanie), oznaczona jako R = kod, gdzie kod jest oznaczeniem alfabetycznym lub numerycznym (stałe lub 302).

W rzeczywistości mod_rewrite jest bardzo przydatną rzeczą, ponieważ z tego powodu wiele silników aktywnie korzysta z tak zwanego CNC (zrozumiały ludzki adres URL). Jeśli nie znasz tego terminu, wyjaśnię to na przykładzie. Artykuł o darmowe silniki na stronie ma adres: https://a-panov.ru/2014/11/free-cms/

Patrząc na ten adres URL, od razu widać, że artykuł został opublikowany w listopadzie 2014 r. Usuwając tytuł za pomocą ukośnika - https://a-panov.ru/2014/11/ - otrzymamy listę wszystkich publikacji na listopad. Normalne adresy, wpisz:

https://a-panov.ru/?p=389

brak szczególnej życzliwości. Widząc taki adres, nie można powiedzieć o stronie, na której prowadzi, absolutnie nic.

Ta metoda jest dobra, jeśli nie zależy Ci na tym, do której strony nowej witryny ma się odnieść link. Ale jeśli przeniósłeś się do innej domeny, wskazane jest przekierowanie wszystkich żądań przy zachowaniu adresów. Aby to zrobić, użyj następującego kodu:
RewriteRule ^. * $ Http://newsite.ru/$0 [QSA, L, R = permanent]
Nowa flaga QSA zapisze również parametry, które można znaleźć w adresach po znaku zapytania. W znanym już przykładzie:

https://a-panov.ru/?p=389

jeśli umieścisz kod w .htaccess powyżej, nastąpi przekierowanie na adres http://newsite.ru/?p=389, którego bez tej flagi nie byłoby.

W dalszej części pominę dyrektywę dotyczącą transformacji:
RewriteEngine On
pamiętaj tylko: jeśli użyjesz mechanizmu mod_rewrite, wszystkie warunki / konwersje muszą zostać wykonane po tej dyrektywie. Aby wyłączyć następujący wiersz:
RewriteEngine Off
odpowiednio, dla każdej reguły nie ma potrzeby ciągłego „włączania” transformacji - zaczyna się to automatycznie, zaraz po pierwszej dyrektywie.

Jak skonfigurować przekierowanie na www (lub bez www)

Takie przekierowania są wymagane w przypadkach, gdy witryna jest dostępna w opcjach nsite.ru i www.nsite.ru, w tym przypadku wyszukiwarki uznają je za duplikaty i mogą wybrać jedną z opcji jako główne lustro lub w wyszukiwaniu będą dostępne opcje z obu domen. Ogólnie rzecz biorąc, jest to negatywny czynnik przy rankingu witryny.

Opcja łatwiejsza dla jednej domeny. Przekierowanie odbywa się z subdomeny www.site.ru do site.ru:
RewriteCond% {HTTP_HOST} ^ wwwwit.ru $
RewriteRule. * Http://nsite.ru/$0 [QSA, L, R = permanent]
W tym miejscu pojawiła się nowa dyrektywa RewriteCond , która określa warunek, pod którym powinny działać przekierowania - reguły RewriteRule . Warunek, w tym przypadku, nazwa domeny odpowiadająca www.nsite.ru (w wyrażeniach regularnych symbol kropki oznacza „dowolny znak”, dlatego wskazane jest zabezpieczenie go odwrotnym ukośnikiem).

Odwrotne przekierowanie jest również bardzo proste:
RewriteCond% {HTTP_HOST} ^ nsite .ru $
RewriteRule. * Http://www.nsite.ru/$0 [QSA, L, R = permanent]
Obie opcje działają, ale mają niewielki minus - dla każdej nowej konfiguracji konieczna jest zamiana domeny nsite.ru na własną. Czy można stworzyć wyjątkową opcję? Łatwe!

Przekieruj z dowolnej subdomeny www:
RewriteCond% {HTTP_HOST} ^ www (. *) $
RewriteRule. * Http: //% 1 / $ 0 [QSA, L, R = permanent]

Przekieruj do subdomeny za pomocą www:
RewriteCond% {HTTP_HOST}! ^ Www
RewriteRule. * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = permanent]

% {HTTP_HOST} - bieżąca domena

Jak utworzyć .htaccess

Pojawiają się również takie pytania. Problem polega na tym, że standardowy Eksplorator (aplikacja w systemie Windows odpowiedzialna za interfejs graficzny) nie pozwala na tworzenie plików zaczynających się od kropki (tworzenie plików lub folderów przez kliknięcie prawym przyciskiem myszy na pulpicie lub w oknie i wybranie żądanej akcji z listy Utwórz ). Ale jest wyjście: otwórz standardowy rejestrator Notatnika, wybierz Plik → Zapisz jako ... w menu i określ .htaccess jako nazwę zapisanego pliku - po tym zostanie utworzony.

Plik .htaccess nie działa

Istnieją przypadki, gdy dyrektywy z pliku nie działają. Jest to zazwyczaj spowodowane faktem, że obsługa .htaccess jest wyłączona w konfiguracji Apache, za którą odpowiada dyrektywa:
AllowOverride none

Zwykle robi się to, aby nieco zwiększyć prędkość - w tym przypadku serwer WWW nie wyszukuje i nie analizuje .htaccess.

Możliwe jest również, że Apache nie jest używany na serwerze, na przykład IIS jest głównym „gościem” na serwerze Windows. W celu wyjaśnienia skontaktuj się ze wsparciem swojego hostera.

Czy istnieje jakiś analog .htaccess w nginx?

Kolejne dość częste pytanie. Na tym serwerze internetowym nie jest to możliwe. Jednak zwykle nie jest to wymagane. Faktem jest, że nginx jest zwykle instalowany jako frondend, to znaczy akceptuje i przetwarza wszystkie żądania, które albo wykonuje samodzielnie, albo przekierowuje do backendu, który może być wykonywany przez Apache, który może być dalej konfigurowany za pomocą .htaccess.

Wydawca

nie online 1 dzień

x64 (alias andi)

Komentarze: 2834 Publikacje: 394 Rejestracja: 02-04-2009

Htaccess w nginx?
Neponyatki może spowodować, że ta liczba - dlaczego 301?
Ru/?
Ru/?
Ru/?
Czy można stworzyć wyjątkową opcję?
Htaccess w nginx?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью