Przekierowanie 301 w pliku .htaccess


Przekierowanie 301 to mechanizm, który przenosi użytkownika z jednego adresu URL na inny (np. na adres na innym serwerze lub w innym katalogu na tym samym serwerze). Z perspektywy pozycjonowania strony WWW w wyszukiwarkach jest to najbardziej zalecany sposób realizacji takiego przekierowania.

SPIS TREŚCI

Więcej informacji o przekierowaniu 301 w htaccess

Kod odpowiedzi 301 oznacza „Moved Permanently”, czyli trwałe przeniesienie zasobu. Przekierowanie 301 należy stosować m.in. wtedy, gdy kilka domen prowadzi do tej samej witryny. Dzięki niemu wskazujemy, która domena ma być adresem głównym serwisu, a pozostałe kierujemy właśnie na ten adres.
Przy takim ustawieniu wyszukiwarki (np. Google, Yahoo, Bing) nie obniżają wartości (tzw. „mocy”) linków prowadzących do strony. Jeśli jednak nie zastosujemy przekierowania 301, treści dostępne pod różnymi domenami są interpretowane jako odrębne witryny, a „siła linków” rozkłada się między nimi. W efekcie pozycja strony w wynikach wyszukiwania może ulec pogorszeniu.

Jak ustawić przekierowanie 301 w pliku .htaccess?

Aby wykonać przekierowanie typu 301 polegające na zmianie domeny ze starej na nową, należy w katalogu (w którym umieszczona jest strona WWW) umieścić plik .htaccess o składni wzorowanej na poniższej:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena-stara\.pl [NC]
RewriteRule (.*) http://domena-nowa.pl/$1 [R=301,L]

Jak ustawić przekierowanie 301 w Panelu klienta az.pl?

Kliknij tutaj, aby przejść do instrukcji konfiguracji przekierowania typu 301 w Panelu administracyjnym az.pl

Wymuszanie adresu z przedrostkiem www lub bez niego

Jeżeli chcesz przekierować wersję domeny bez przedrostka „www.” na tę samą domenę z przedrostkiem „www.”, konfiguracja wygląda bardzo podobnie. Szczegółowe instrukcje dla tego typu przekierowania znajdują się poniżej.

WAŻNE! Trzeba mieć na uwadze, że „www.twojadomena.pl” oraz „twojadomena.pl” są dla wyszukiwarki dwiema odrębnymi stronami WWW. W praktyce internetowej przyjęło się stosowanie przedrostka „www.” przed nazwą domeny (choć technicznie nie jest on wymagany). Aby nie obniżyć pozycji serwisu w wynikach wyszukiwania, warto wybrać jedną docelową wersję adresu i konsekwentnie się jej trzymać.
Jeżeli wybierasz wariant adresu z przedrostkiem „www.”, użyj poniższego kodu:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Jeśli zdecydujesz sie na formę adresu, która nie zawiera przedrostka „www.”, to należy skorzystać z takiego zapisu:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Wymuszanie adresu domeny z przedrostkiem https://

Przypadek ten jest bardzo ważny dla użytkowników korzystających z certyfikatów SSL. Za pomocą poniższego kodu możesz wymusić adres z przedrostkiem „https://”, który stosowany jest do bezpiecznego szyfrowanego połączenia z serwerem. Więcej informacji jak uruchomić certyfikat SSL na stronie WWW znajdziesz tutaj.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dlaczego zmienna %{SERVER_PORT} nie działa?

Na serwerach w az.pl zmienna: %{SERVER_PORT} nie jest obsługiwana, zamiast niej należy stosować: %{HTTPS}, która została użyta w powyższych przykładach (np. przy wymuszaniu adresu domeny z przedrostkiem https lub przy wymuszaniu adresu z przedrostkiem www lub bez niego).

Inne popularne przykłady przekierowań

Zabezpieczenie przed linkowaniem obrazków:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?twojadomena\.pl [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^http://.*$
RewriteRule \.(jpe?g|gif|bmp|png)$ /obrazki/kradziez.png [L]

Przekierowanie wielu domen na jeden adres:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena1.pl$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?domena2.pl$
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]

Przekierowanie z jednego adresu do drugiego w ramach tej samej domeny:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?twojadomena\.pl$ [NC]
RewriteRule ^adres1(\/.*)?$ http://www.twojadomena.pl/adres2 [R=301,L]

Przekierowanie z każdej subdomeny na jedną domenę

Poniższa reguła spowoduje, że cały ruch skierowany, np. na nieistniejące subdomeny „test.twojadomena.pl” lub „cxzcxzcxz.twojadomena.pl” zostanie przekierowany na adres: „https://twojadomena.pl”. Reguła przekieruje również ruch z wpisywanym „www.” na „bez www.”

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).twojadomena.pl
RewriteRule ^(.*)$ https://twojadomena.pl/$1 [R=301,L]

Przekierowanie z jednego adresu na drugi w ramach tej samej domeny za pomocą REQUEST_URI

Poniższa reguła spowoduje, że cały ruch z adresu: „test.twojadomena.pl/adres1” zostanie przekierowany na adres: „test.twojadomena.pl/adres2”

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?test\.twojadomena\.pl$ [NC]
RewriteCond %{REQUEST_URI} ^/adres1/
RewriteRule (.*) /adres2 [R=301,L]

Poniższa reguła spowoduje, że cały ruch z adresu: „test.twojadomena.pl/adres1″ zostanie przekierowany na adres: „test.twojadomena.pl/adres1/adres2″

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?test\.twojadomena\.pl$ [NC]
RewriteCond %{REQUEST_URI} ^/adres1/
RewriteCond %{REQUEST_URI} !adres2
RewriteRule (.*) $1/adres2 [R=301,L]

Kolejny przykład przekierowania ze starego adresu na nowy adres w ramach tej samej domeny

RewriteEngine On
RewriteRule ^aktualnosci/([^/]*)\.html$ /aktualnosci/111-$1.html [L,R=301]
  • Czy artykuł był pomocny ?
  • Tak   Nie
Generic filters
Filter by Article Categories

jak się zalogowaćjak zmienić hasłojak sprawdzić pocztękonfiguracja pocztyftp

lub