Przekierowanie 301 co to jest i jak z niego korzystać? (.htaccess)

przekierowanie na inny adres internetowy 301
Czas czytania 4 minuty

Przekierowanie 301 (Moved Permanently) służy do przenoszenia (przekierowywania) z jednego adresu internetowego na drugi. Przy czym warto wspomnieć, że dla wyszukiwarki internetowej domena z www i bez to już 2 różne adresy. Dlatego też jest często wykorzystywane podczas optymalizacji strony pod kontem pozycjonowania przez pozycjonerów oraz twórców stron.

Co to jest przekierowanie 301

Jak wspomniałam wcześniej przekierowanie typu 301 służy do przenoszenia z jednego adresu na drugi, ale nie przenosi ono nas jedynie fizycznie. Przekierowanie przekazuje również moc linków z jednego adresu na drugi. W nieco prostszym języku – po wpisaniu adresu strony posiadającej przekierowanie 301 adres w pasku adresu przeglądarki zostanie podmieniony na nowy wskazany w przekierowaniu. W efekcie zostajemy przeniesieni na inną stronę niż planowaliśmy, ale tą którą chciał jej właściciel (w teorii). Witryna może wyglądać identycznie, będzie miała jednak „inny adres”. Przekierowanie to działa podobnie na roboty wyszukiwarek.

Do czego przyda się nam przekierowanie typu 301?

301 przeniesienie na inną stronę

Na początek warto zwrócić uwagę, że adres domena.euwww.domena.eu (czyli domena z przedrostkiem www i bez www) to dla wyszukiwarki internetowej dwa różne adresy, wskazujące na tą samą przestrzeń dyskową (duplikaty). Dlatego, jeśli chcemy by nasza strona, miała dobre pozycje w wynikach wyszukiwania, warto zrobić porządek w adresach.  Zazwyczaj wybierany jest adres www.domena.pl, jest tak dlatego, że większość ludzi odruchowo wpisuje w polu przeglądarki internetowej adres strony zaczynający się od www.

Innym przypadkiem, kiedy przyda nam się przekierowanie 301, jest sytuacja gdy zdecydujemy się na zmianę adresu internetowego.

Przekierowanie 301 jest bardzo proste uniwersalne, interpretowane zarówno przez przeglądarki, jak i roboty wyszukiwarek internetowych takich jak Google.

różnice pomiędzy przekierowaniem 301 a 302
różnice pomiędzy przekierowaniem 301 a 302

Jak działa przekierowanie 301

Na początek musimy utworzyć plik .htaccess, który należy wgrać do katalogu głównego na serwerze. W zależności od tego jaki efekt chcemy uzyskać możemy użyć następujących kodów:

Warto pamiętać, że jeśli łączymy kilka metod to za każdym razem nie musimy wpisywać RewriteEngine On wystarczy zrobić to raz na samym początku.


Przekierowanie z „bez www” na „www

w przypadku nie wpisania www zostaje ono dodane – kod dodaje www przed adresem

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

lub

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

Przekierowanie z „www” na „bez www”:

Tym razem usuniemy z początku naszego adresu www.

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

Usunięcie index.php z adresu strony:

W tym wypadku będziemy przenosić odwiedzających na główny adres naszej strony – usuwając index.php.

RewriteEngine on
RewriteCond %{REQUEST_URI} ^\/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://www.domena.pl/ [L,R=301]

Przekierowanie z „starej strony” na „nową stronę”:

Czyli automatyczne przeniesienie ze starego adresu strony na nowy. Jest to bardzo przydatne przekierowanie w przypadku gdy przenosimy starą stronę na nowy adres. Proces ten wykonuje się, by nie stracić dotychczasowych użytkowników.

Przekierowanie można wykonać na kilka sposobów np.

Całkowite przekierowanie na stronę główną serwisu. Czyli wszystkie podstrony starej strony wskazują na stronę główną nowego serwisu:

Redirect 301 / https://nowadomena.pl/

Możemy też użyć przekierowania, które przekieruje każdą podstronę na swój odpowiednik w nowym serwisie. Metoda ta sprawdza się np. w sytuacji kiedy nowa strona ma taką samą strukturę jak stara tylko różnią się nazwą domeny.

RewriteEngine On
rewritecond %{http_host} ^www.staradomena.com.pl [nc]
rewriterule ^(.*)$ http://www.nowadomena.pl/$1 [r=301,nc]

Można również wykonać przekierowanie z adresu „starej strony” na „nową stronę” za pomocą kodu:

RewriteEngine On
RewriteRule ^(.*)$ http://nowadomena.pl/$1 [R=301,L]

lub bez konieczności podawania nazwy domeny – przydatne szczególnie jeśli mamy podpiętych kilka domen do tego samego katalogu (i np. nie chcemy tworzyć duplikatów)

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

Przekierowanie podstrony na inny adres URL/inną podstronę:

W przypadku kiedy usunęliśmy (zmieniliśmy adres lub lokalizację) jedną lub więcej podstron naszego serwisu i nie chcemy uniknąć sytuacji kiedy nasi odwiedzający / czytelnicy / klienci trafiali na podstronę błędu 404, możemy skorzystać z poniższego kodu. W miejscu /stary/adres.php oczywiście umieszczamy nasz pierwotny adres, który zmieniliśmy.

RewriteEngine On
RedirectMatch 301 ^/stary/adres.php /nowy/adres.php
RewriteEngine On
RedirectMatch 301 ^/stary/adres.html /nowy/adres.html

Powyższej metody możemy użyć w sytuacji gdy przekierowujemy podstrony będące w tej samej domenie. Jeżeli chcemy dokonać przekierowania na adres znajdujący się pod inną domeną przydatne okaże się przekierowanie:

Redirect /stara/lokalizacja/stary-adres.html https://www.nowadomen.pl/nowy-adres.html

Zmiana adresu domeny na z przedrostkiem „https://”

RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule ^(.*)$ https://www.domena.pl/$1 [R=301,L]

Zabezpieczenie przed linkowaniem obrazków

Dzięki poniższemu kodowi nie będzie można podlinkować zdjęć umieszczonych na naszym serwerze. Chodzi o sytuację, w której ktoś na swojej stronie wyświetla obraz fizycznie mieszczący się na naszym serwerze.

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

Przekierowanie ze strony błędu 404 – Not Found

ErrorDocument 404 https://przykladowa.pl/

Powyższe kody świetnie sprawdzą się w przypadku prostych stron internetowych jednak nie koniecznie już dla bardziej zaawansowanych systemów CMS.

Do systemów CMS takich jak WordPress warto używać specjalnych wtyczek (pluginów). Jest tak dlatego że potrafią one edytować zawartość pliku .htaccess.

Zainteresować może cię również:

Dodatkowe tagi:
przekierowanie na nowy adres
przekierowanie 301
Jak przekierować domenę na wskazany adres strony w Internecie
przekierowania url
zmiana adresu strony