Przekierowania 301 w pliku .htaccess
Jeśli nie wiesz, jak wykonać przekierowanie 301 w .htaccess, z pewnością ten artykuł będzie dla Ciebie przydatny. W poniższym wpisie zebraliśmy najpopularniejsze typy przekierowań 301, które warto znać.
Ustawianie przekierowania 301 bez www i na www
W obu wariantach należy zamienić "nazwadomeny" na swoją domenę.
Jako przykład może nam posłużyć przypadek gdy chcemy przekierować adres nazwadomeny.pl na www.nazwadomeny.pl
1.Przekierowanie 301 w .htaccess bez nazwadomeny.pl na www.nazwadomeny.pl:
RewriteBase /
RewriteCond %{HTTP_HOST} ^nazwadomeny.pl$
RewriteRule ^(.*) http://www.nazwadomeny.pl/$1 [QSA,L,R=301]
W tym przypadku natomiast możemy posłużyć się wpisem by dokonać odwrotnego zabiegu gdzie www.nazwadomeny.pl chcemy przekierować na nazwadomeny.pl
2.Przekierowanie 301 w .htaccess z www bez www
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.nazwadomeny.pl$
RewriteRule ^(.*) http://nazwadomeny.pl/$1 [QSA,L,R=301]
Zmiany powinny zostać dokonane w pliku .htaccess znajdującym się w folderze z naszą stroną.
Przekierowanie 301 a przenoszenie strony
Przekierowanie 301 pomagają podczas prac nad przenoszeniem strony na nowy adres, gdzie z pomocą przychodzi nam plik .htaccess. Pamiętajmy też, że samo przekierowanie nie jest tym samym co przeniesienie domeny z serwera na serwer. Używamy tego np. w przypadku gdy zmianie ulega adres strony.
Po skopiowaniu plików i upewnieniu się, że pod naszym nowym adresem wszystko działa poprawnie, możemy usunąć wszystkie pliki z naszego starego serwera i zmodyfikować bądź utworzyć plik o nazwie .htacces, a w nim umieścić następujące reguły:
Przypomnienie: po skopiowaniu poniższych reguł nie zapomnijmy zamienić "twoja_domena.pl" na naszą domenę :)
RewriteBase /
RewriteRule (.*) http://www.twoja_domena.pl/$1 [R=301,L]
Przekierowywanie 301 podstron
Przy przekierowywaniu podstron na przykład gdy zmieniamy ich adresy radzimy zachować szczególną ostrożność w przypadku gdy istnieje już plik .htaccess w katalogu Twojej strony - należy wtedy zrobić jego kopię (zalecane przez nas) a następnie dokonać zmian - wtedy jesteśmy wstanie przywrócić kopię naszego pliku.
Poniżej przedstawiamy przykład:
RewriteBase /
RewriteRule ^index.html$ http://www.twoja_domena.pl/ [R=301,L]
RewriteRule ^podstrona1.php$ http://www.twoja_domena.pl/nowapodstrona1.html [R=301,L]
RewriteRule ^podstrona2.php$ http://www.twoja_domena.pl/nowapodstrona2.html [R=301,L]
Objaśnienie reguł:
RewriteRule ^index.html$ http://www.twoja_domena.pl/ - przekierowuje podstronę index.html na domenę główną (twoja_domena.pl)
RewriteRule ^podstrona1.php$ http://www.twoja_domena.pl/nowapodstrona1.html [R=301,L] - przekierowuje podstronę o nazwie "podstrona1.php" na naszą nową podstronę "nowapodstrona1.html"
RewriteRule ^podstrona2.php$ http://www.twoja_domena.pl/nowapodstrona2.html - ten wpis jest analogiczny do linii wyżej.
Pamiętajmy! Podczas przekierowywania, musimy podać pełny adres wraz z http:// w innym przypadku przekierowanie nie zadziała.
Przekierowanie 301 z http na https
W tym przykładzie zakładamy, że posiadasz zainstalowany certyfikat SSL na swojej domenie i działa on poprawnie. W przypadku gdy certyfikat nie został poprawnie zainstalowany wraz z przekierowaniem w pliku .htaccess lub na poziomie aplikacji istnieje ryzyko jest indeksowana pod dwoma adresami - http i https. Aby uniknąć indeksowania tej samej treści pod dwoma różnymi adresami, musimy powiedzieć algorytmowi Google, iż treść na naszej stronie jak i na wszystkich podstronach jest dostępna pod nowymi adresami. Aby tego dokonać, możemy posłużyć się przekierowaniem 301 w pliku .htaccess.
Strony oparte o systemy zarządzania treścią(CMS) takie jak WordPress czy Drupal bądź inne tworzą na ogół swój własny plik .htaccess dlatego też posłużymy się nim. Aby dokonać przekierowania, należy umieścić w nim następujące reguły:
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.twoja_domena.pl/$1 [R=301,L]
Przekierowanie 301 z https na http w pliku .htaccess
Analogicznie jeśli z jakichś przyczyn chciałbyś wrócić do wersji http, możesz jak najbardziej tego dokonać dodając poniższe reguły do swojego pliku .htaccess
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://www.twoja_domena.pl/$1 [R=301,L]
Podsumowując
W tym artykule dowiedziałeś się jak za pomocą pliku .htaccess dokonać przekierowania 301. Możesz rozbudować powyższe przykłady o własne reguły, jednakże radzimy zachować dozę ostrożności i świadomie dokonywać zmian. Mamy nadzieję, że niniejszy wpis pomógł Ci i jesteś w stanie wprowadzić samemu następujące zmiany :)