Przekierowanie 301 strony internetowej w pliku .htaccess

Przekierowanie 301 jest to sposób na przekierowanie użytkownika z jednego adresu na inny. Niby nic, bo można to zrobić inaczej, ale jest to najlepsze rozwiązanie z punktu widzenia pozycjonowania strony. Dzieje się tak dlatego, że “moc” SEO, jaką niesie za sobą jeden adres jest przekazywana drugiemu. Kod 301 oznacza Moved Permanently, czyli trwale przeniesiony. 

Przekierowanie 301 powinniśmy stosować w przypadku, gdy mamy kilka domen i wszystkie wskazują na tą samą stronę lub chcemy zmienić domenę na inną. Wtedy decydujemy, która domena jest naszą główną i pozostałe przekierowujemy na główną domenę. Stosując takie rozwiązanie wyszukiwarki typu Google, Yahoo czy Bing bez względu na domenę “widzą” jedną stronę. Natomiast bez przekierowania 301 wyszukiwarki traktują treść znajdującą się pod poszczególnymi domenami jako różne strony, a siła linków jest rozproszona. Poniższe metody były stosowane na CMS WordPress i Prestashop i bezproblemowo działały.

Jak zrobić przekierowanie 301 przez .htaccess?

Najlepszym sposobem na przekierowanie 301 jest zapisanie odpowiednich reguł w pliku .htaccess. Za pomocą takiego przekierowania możemy przekierować cały ruch z jednej domeny na inną domenę. Poniżej przykład przekierowania z adresu www.domena1.com na www.domena2.com.

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.domena1.com(.*) [NC]

RewriteRule ^(.*)$ http://www.domena2.com/$1 [R=301,L]

Podobnie postępujemy, jeśli chcemy przekierować domenę bez www na www, bo należy pamiętać, że www.domena.com i domena.com to dla wyszukiwarki 2 różne strony. Przyjęło się, że przed nazwą domeny wstawiamy przedrostek www, ale w rzeczywistości nie jest on potrzebny. Dlatego warto zdecydować w jakiej formie wolimy przedstawiać nasz adres i taką stosować. Jeżeli decydujemy się na formę z www to należy przekierować adresy bez www na z www.
Przykład poniżej:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^domena.com(.*) [NC]

RewriteRule ^(.*)$ http://www.domena.com/$1 [R=301,L]

Możemy również przekierować adresy z www na bez www wtedy wpis w htaccess będzie wyglądał tak:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.domena.com(.*) [NC]

RewriteRule ^(.*)$ http://domena.com/$1 [R=301,L]

Kolejnym zastosowaniem takiego przekierowania jest zmiana struktury linków. Załóżmy, że do chwili obecnej mieliśmy strukturę: www.domena.com/strony/strona1.html i www.domena.com/strony/strona2.html.
Obecnie po modyfikacji mamy adresy www.domena.com/strona1.html oraz www.domena.com/strona2.html
Aby nie tracić już zaindeksowanych linków możemy pokazać, na jakie strony powinny wskazywać stare adresy. Realizacja zadania poniżej:

RewriteEngine On

RewriteRule ^strony/strona([0-9]{1,}).html$ strona$1.html [R=301,L]

Sprawdź swoją wiedzę

Avatar photo
Wiśniewski Jakub

Interesuję się informatyką od 2005, a pracuję w IT od 2010. Lubię rozwiązywać problemy, a w wolnym czasie biegać po bezdrożach.