Przekierowania w pliku .htaccess
Plik .htaccess jest plikiem konfiguracyjnym używanym przez serwery, na których instalowane są sklepy internetowe. Pozwala on na konfigurowanie wielu różnych aspektów działania serwera, w tym przekierowań. Przekierowania w pliku .htaccess służą głównie do przekierowywania użytkowników z jednego adresu URL na inny. Jest to przydatne w wielu sytuacjach, na przykład:
Najczęściej używane to przekierowanie 301. Jest to mechanizm kierowania użytkowników z jednego adresu URL na inny, czy to na zewnętrzny serwer, czy na tę samą domenę, ale do innej lokalizacji na serwerze. Jest to skuteczne narzędzie, gdy chcemy trwale zmienić adres docelowy danej strony internetowej. Ze względu na charakterystykę 301, które oznacza "trwale przeniesiono", wyszukiwarki traktują to jako wskazanie, że nowy adres jest teraz głównym i preferowanym adresem dla danej zawartości. Dzięki temu przekierowanie 301 jest uznawane za najlepsze rozwiązanie w kontekście optymalizacji pozycjonowania strony w wynikach wyszukiwania.
Aby przekierować ruch ze starej domeny na nową za pomocą pliku .htaccess, można użyć dyrektywy
Po zastosowaniu takich zmian w pliku .htaccess, każde żądanie wysłane do starej domeny zostanie automatycznie przekierowane na nową domenę. Warto zauważyć, że w powyższych przykładach "stara-domena.com" i "www.stara-domena.com" należy zastąpić rzeczywistymi nazwami starej domeny, a "nowadomena.com" to nowa docelowa domena.
- można przekierować wszystkie żądania dla jednej domeny na inną, na przykład z przykladowadomena.pl na nowadomena.pl
- można przekierować konkretne ścieżki na inne adresy URL - np. starastrona.pl może przekierowywać do nowastrona.pl
- można ustawić przekierowanie tak, aby użytkownicy, którzy próbują uzyskać dostęp do Twojego sklepu bez prefiksu "www", zostali przekierowani na wersję z "www", lub odwrotnie
- można ustawić przekierowania tymczasowe (302) lub stałe (301), w zależności od tego, czy chcesz, aby przekierowanie było trwałe i miało wpływ na SEO
Najczęściej używane to przekierowanie 301. Jest to mechanizm kierowania użytkowników z jednego adresu URL na inny, czy to na zewnętrzny serwer, czy na tę samą domenę, ale do innej lokalizacji na serwerze. Jest to skuteczne narzędzie, gdy chcemy trwale zmienić adres docelowy danej strony internetowej. Ze względu na charakterystykę 301, które oznacza "trwale przeniesiono", wyszukiwarki traktują to jako wskazanie, że nowy adres jest teraz głównym i preferowanym adresem dla danej zawartości. Dzięki temu przekierowanie 301 jest uznawane za najlepsze rozwiązanie w kontekście optymalizacji pozycjonowania strony w wynikach wyszukiwania.
Jak ustawić przekierowanie w pliku .htaccess?
W pliku .htaccess można stosować różne przekierowania. Poniżej podamy przykłady najczęściej stosowanych w przypadku sklepu internetowego.Przekierowanie z jednego adresu do drugiego w ramach tej samej domeny
Aby ustawić przekierowanie z jednego adresu URL na drugi w ramach tej samej domeny za pomocą pliku .htaccess, możesz użyćRewriteRule
. Oto przykład:
RewriteEngine On RewriteRule ^stary-adres$ /nowy-adres [R=301,L]W przypadku
RewriteRule
, ^stary-adres$
jest wyrażeniem regularnym dopasowującym stary adres URL, a /nowy-adres
to nowy adres, na który chcesz przekierować. [R=301]
oznacza stałe przekierowanie (301), a [L]
oznacza, że reguła ma być ostatnią używaną, czyli po jej zastosowaniu inne reguły nie będą brane pod uwagę. Po wprowadzeniu takich zmian i zapisaniu pliku .htaccess, wszelkie żądania odwiedzających stary-adres
zostaną automatycznie przekierowane na nowy-adres
.Przykład przekierowania ze starego adresu na nowy adres w ramach tej samej domeny
Jeśli chcesz przekierować konkretny linkstary-link-produktu-p-1.html
na nowy-link-produktu-p-100.html
, używając reguły RewriteRule
, możesz to zrobić w ten sposób:
RewriteEngine On RewriteRule ^stary-link-produktu-p-1\.html$ /nowy-link-produktu-p-100.html [R=301,L]
W tym przypadku:
RewriteRule
definiuje regułę przekierowania^stary-link-produktu-p-1\.html$
jest wzorcem dopasowującym dokładnie adres URLstary-link-produktu-p-1.html
./nowy-link-produktu-p-100.html
to docelowa ścieżka URL, na którą chcesz przekierować[R=301,L]
oznacza, że jest to stałe przekierowanie (301) i reguła ma być ostatnią używaną.
stary-link-produktu-p-1.html
zostanie automatycznie przekierowane na nowy-link-produktu-p-100.html
.Przekierowanie wielu domen na jeden adres
Aby przekierować wiele domen na jeden adres za pomocą pliku .htaccess, możesz użyć dyrektywyRewriteCond
do sprawdzenia hosta (domeny) żądania i następnie zastosować przekierowanie za pomocą RewriteRule
. Oto jak to zrobić:
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?domena1\.com [NC,OR] RewriteCond %{HTTP_HOST} ^(www\.)?domena2\.com [NC] RewriteRule ^(.*)$ http://www.docelowa-domena.com/$1 [R=301,L]W powyższym przykładzie:
RewriteCond
definiuje warunek, który musi być spełniony - w tym przypadku sprawdzamy, czy żądanie pochodzi z domenydomena1.com
lubdomena2.com
.^(www\.)?
to wyrażenie regularne dopasowujące zarówno domeny z prefiksem "www." jak i bez niego[NC]
oznacza, że porównanie jest niezależne od wielkości liter (bez rozróżniania wielkości liter)[OR]
oznacza "lub", co oznacza, że warunek może być spełniony, jeśli jedno z dwóch wyrażeń jest prawdziweRewriteRule
definiuje przekierowanie.^(.*)$
dopasowuje całą ścieżkę URL.$1
jest zmienną, która zawiera dopasowaną ścieżkę.http://www.docelowa-domena.com/$1
to docelowy adres, na który chcesz przekierować.[R=301,L]
oznacza, że jest to stałe przekierowanie (301) i reguła ma być ostatnią używaną
domena1.com
i domena2.com
na www.docelowa-domena.com
. Możesz dodawać kolejne RewriteCond
, aby przekierować więcej domen na tę samą docelową domenę.
Przekierowanie starej domeny na nową
Aby przekierować ruch ze starej domeny na nową za pomocą pliku .htaccess, można użyć dyrektywy RewriteRule
. Oto przykład:
RewriteEngine On RewriteCond %{HTTP_HOST} ^stara-domena.com$ [OR] RewriteCond %{HTTP_HOST} ^www.stara-domena.com$ RewriteRule (.*)$ http://www.nowadomena.com/$1 [R=301,L]W tym przypadku,
RewriteCond
służy do sprawdzenia hosta (domeny) żądania, a RewriteRule
przekierowuje wszystkie żądania ze starej domeny na nową. R=301
oznacza, że jest to stałe przekierowanie (301).Po zastosowaniu takich zmian w pliku .htaccess, każde żądanie wysłane do starej domeny zostanie automatycznie przekierowane na nową domenę. Warto zauważyć, że w powyższych przykładach "stara-domena.com" i "www.stara-domena.com" należy zastąpić rzeczywistymi nazwami starej domeny, a "nowadomena.com" to nowa docelowa domena.