Przekierowania 301 są często stosowane podczas zmiany struktury strony, kiedy to pojawiaja się nowe schematy linków, nowe podstrony. Podczas takiej operacji należy zadbać o to by jak najmniej podstron po takiej zmianie zwracało komunikat o nieistniejącej podstronie ( nagłówek 404 ). Istnieje kilka sposobów podejścia do tematu..
Pracowałem przy projektach o różnej złożoności i moim zdaniem jednym z najlepszych i najprostszych sposobów na to by wykonać dobre przekierowania 301 jest zastosowanie odpowiednich regułek w pliku .htaccess. Takie przekierowania przydatne są także podczas zmiany domeny ( adresu URL) danej strony, wtedy możemy „przenieść” całą moc SEO na nowy adres.
1. Przekierowanie 301 pomagające podczas przeniesienia plików strony na nowy adres:
a) kopiujemy pliki strony w nowe miejsce nazwę to umownie – nowadomena.pl
b) jeśli wszystko działa poprawnie pod nowym adresem, możemy usunać pliki ze starego adresu
c) kiedy usuniemy pliki możemy utworzyć w katalogu głównym starej domeny plik htaccess:
RewriteEngine On RewriteBase / RewriteRule (.*) http://www.nowadomena.pl/$1 [R=301,L]
W powyższym pliku .htaccess musimy jeszcze zamiast nowadomena.pl podać realny adres pod którym znajduje się aktualnie strona
2. Przekierowanie 301 dla podstron, które zmieniły adres
Tą operację trzeba wykonywać z dużą ostrożnością, istnieje duże prawdopodobieństwo, że masz już jakiś plik htaccess w katalogu głównym Twojej strony. W takim przypadku plik należy odpowiednio zaktualizować. Najczęściej wystarczy dodać odpowiednie regułki zaraz po „RewriteBase /” lub RewriteEngine On.
Poniżej przedstawiam przykład:
RewriteEngine On RewriteBase / RewriteRule ^index.html$ http://www.domena.pl/ [R=301,L] RewriteRule ^podstrona1.php$ http://www.domena.pl/nowapodstrona1.html [R=301,L] RewriteRule ^podstrona2.php$ http://www.domena.pl/nowapodstrona2.html [R=301,L]
W liniach od 4 do 6 są odpowiednie regułki które pozwolą na przekierowania 301 podstron. W lini 4 jest przekierowanie z podstrony index.html na domenę główną. W lini 5 przekierowujemy podstronę o nazwie: podstrona1.php na nowapodstrona1.html. W lini 6 jest analogiczny przykład.
Podczas podawania adresu, na który chcemy przekierowywać musimy podać cały adres URL razem z nazwą domeny i http:// inaczej nie będzie to działać.
Bardzo dziękuję za poradę. Właśnie tego potrzebowałem.
Witam. Czy można dokonać przekierowania na całkowicie nowy adres za pomocą przykładu nr 2 (linijka 5 i 6)? Chodzi o to, że nowy adres znajduje się na całkowicie nowej domenie , innym katalogu i pod innym tytułem artykułu. Z góry dziękuję za odpowiedź.
Praktyczny artykuł. Dzięki.
Czy można to przekierowanie zastosować gdy przenoszę serwis z Joomla na WordPress, a domena zostaje bez zmian?
Witam, próbuję przekierować podstrony z mojej domeny, które mają rozszerzenie .html na podstrony o rozszerzeniu .php. Robię to w taki sposób, ale z jakiegoś powodu nie działa.
Nie jestem pewna, czy $ powinno stać przy html, czy php. Błagam o pomoc 🙂
RewriteEngine On
RewriteBase /
RewriteRule ^index.html http://www.mojadomena.com/ [R=301,L]
RewriteRule ^test.html$ http://www.mojadomena.com/test.php [R=301,L]
Dziękuję, bardzo mi Pan pomógł, pozdrawiam
Witam
Próbuję przekierować plikiem htaccess w ramach tej samej domeny starą stronę o nazwie welcome_pol. php – na – welcome-pol.php
Inawet po wyczyszczeniu cache przeglądarki zarówno wpis
Redirect 301 /welcome_pol.php /mojastrona.pl/welcome-pol.php
jak i wpis
RewriteRule ^/http://mojastrona.pl/welcome_pol.php$ /http://mojastrona.pl/welcome-pol.php [R=301,NC]
niestety nie działa . Co zrobić?
I tak wszystko zależy od serwera, bo niektóre regułki niestety nie chca działać, nie ma uniwersalnych rozwiązań