Przekierowanie domeny przy pomocy .htaccess

31 stycznia 2008 | Miron Kłosiński
Ocena 5/5 (1 głos)

Na początku wypadało by pokrótce omówić czym jest i do czego służy plik .htaccess.
Otóż tajemniczy plik .htaccess jest plikiem konfiguracyjnym serwera. Wszelkie wprowadzone w nim zmiany są widoczne w katalogu oraz podkatalogach folderu nadrzędnego, w którym się on znajduje.

Dzięki plikowi .htaccess można wykonać dowolne przekierowania podpiętej już domeny.
Niewiele osób wie jak ważne jest odpowiednie przekierowanie domeny w procesie pozycjonowania. Otóż jak wiadomo Google „akceptuje” tylko pełne przekierowania zwane przekierowaniami typu 301 - inne połowiczne przekierowania (np. tymczasowe 302) nie są tak wartościowe.

W dzisiejszym artykule przedstawię dwa sposoby wykonania prawidłowego przekierowania typu 301 opartego na pliku .htaccess.

Pierwszy sposób zapisu:

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


Adresy abc.pl, www.abc.pl i xyz.pl są przekierowywane na adres www.xyz.pl

Należy pamiętać, aby w pierwszej linii naszego pliku .htaccess było zawsze polecenie „RewriteEngine On”. Polecenie to uruchamia „silnik przepisywania” czyli moduł mod_rewrite dla danego pliku .htaccess.

Postaram się omówić teraz drugą metodę zapisu.

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


Pierwsza linia została już omówiona wcześniej, odnosząc się do drugiej linii przedstawia się ona w następujący sposób - „Jeżeli adres strony jest różny od www.DOMENA.pl wtedy przekieruj do adresu www.DOMENA.pl”. Wpis ten jest wpisem o tyle lepszym w użyciu, gdyż nie musimy znać wszystkich domen kierujących do serwisu. Niektóre serwery (np. nazwa.pl) wymagają dopisania polecenia „RewriteBase /” tuż pod poleceniem startowym RewriteEngine On. Jeżeli plik .htaccess znajduje się w podkatalogu, należy instrukcję tą uzupełnić o pełen względny (wobec położenia katalogu głównego domeny) adres ów podkatalogu.


Poprzednie wpisy:

Komentarze (4):

Paweł | Dnia: 2008-02-12 o godz. 23:38:15

Mam pytanie techniczne, tzn mam zarejestrowana domene na nazwa.pl, oraz serwer bluehost.com. Chce aby zarejestrowana domena wskazywala nie na glowny adres serwera tzn www.xxx.us, tylko na www.xxx.us/xxx (czyli na katalog). Skonfigurowałem odpowiednio serwery DNS na nazwie.pl. I teraz w cPanelu serwera moge jedynie zaparkowa domenę dla głównego katalogu czyli www.xxx.us a dla katalogów mozliwe jest tylko addon domain co działa w zasadzie jak alias. Proszę o pomoc czy da się jakoś zaparkowa tą domenę dla katalogu? CI z bluehosta nie odpisują na maile moze dlatego ze nie rozumieja mojego angielskiego. Pozdrawiam.

Miron Kłosiński | Dnia: 2008-02-14 o godz. 16:10:52

Hmmm... skoro nie ma możliwości przypisania domeny do wybranego katalogu i ciężko się dogadać z administratorami Bluehost, to można skorzystać z alternatywnego rozwiązania, np. z mod_rewrite.

RewriteRule ^(.*)$ forum/$1

Adrian Krawczyk | Dnia: 2011-09-10 o godz. 15:25:33

A da się zrobić takie przekierowanie domeny na plik php? Mam główna domenę www.glowna.pl i kilka innych domen które chciałbym podlinkować pod niektóre pliki na serwerze np plik1.php -> domena1.pl itd i po kliknięciu w dany z przekierowaniem wskakiwała pożądana domena, natomiast reszta odnośników i plików, aby była podpięta do głownej domeny odnośnikami lokalnymi ./. Dodam, że wszystkie domeny mają już skierowane serwery dns na tą domene i hosting głównej.

Piotr Górniak | Dnia: 2011-09-20 o godz. 08:48:31

W przypadku kiedy wszystkie domeny skierowane są na katalog główny na serwerze w pliku .htaccess należy użyć warunku:

RewriteCond %{HTTP_HOST} ^www.domena.pl [NC]
RewriteRule ^(.*)$ plik.html [QSA,NC]

Dodaj komentarz:

Imię i nazwisko:
E-mail (niepublikowany):
Strona WWW:
Treść:
Kod z obrazka: