Jak przekierować domenę na podkatalog za pomocą .htaccess?

Wprowadzenie

Poniższa instrukcja znajdzie zastosowanie, m.in. w konfiguracji w której domena została przekierowana na adres IP serwera znajdującego się w home.pl. Przekierowanie na adres IP jest możliwe m.in. poprzez edycję rekordu A w  panelu administracyjnym w panelu operatora domeny.

Jako główną wartość dla rekordu A należy podać adres IP serwera w home.pl, na którym jest opublikowana strona WWW. Ze względu na specyfikę usług home.pl, posiadanie unikalnego adresu IP niezbędnego, m.in. do uzyskania powyższej konfiguracji, może być odpłatne.
Unikalny adres IP danego serwera w home.pl możesz uzyskać kontaktując się z Biurem Obsługi Klienta. Przeczytaj więcej o unikalnym adresie IP dla poszczególnych usług home.pl.
WAŻNE! Przekierowanie domeny możesz również wykonać podając nazwę hosta serwera w home.pl jako główną wartość rekordu CNAME. Pamiętaj, że po dodaniu takiego rekordu CNAME poczta e-mail w danej domenie może przestać funkcjonować! Z tego powodu wskazane jest użycie rekordu A.

Przekierowanie domeny na katalog na serwerze w home.pl (.htaccess)

Po dodaniu odpowiedniego rekordu A, który będzie powodował skierowanie wybranej domeny na katalog główny serwera w home.pl, należy utworzyć odpowiedni plik konfiguracyjny.
Wspomniany plik konfiguracyjny (czyli „.htaccess”) będzie odpowiedzialny za przekierowanie wybranej domeny do podkatalogu na serwerze w home.pl. Każdy użytkownik wywołujący adres domeny będzie w pierwszej kolejności kierowany pod zdefiniowany adres IP serwera w home.pl, następnie plik konfiguracyjny .htaccess będzie powodował przekierowanie użytkownika do odpowiedniej zawartości (podkatalogu).
Funkcjonalność przekierowania domeny na podkatalog możemy uzyskać za pomocą prostych reguł mod_rewrite, które należy wpisać w pliku o nazwie „.htaccess”:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !/katalog/
RewriteRule ^(.*)$ /katalog/$1 [L]

Pogrubione pola: „domena” oraz „katalog” należy zmienić na odpowiednią wartość:

  • zamiast słowa domena wpisz nazwę domeny, która ma zostać przekierowana na podkatalog,
  • zamiast słowa katalog wpisz nazwę katalogu, do którego domena ma zostać przekierowana.

 

Sprawdź poniższy przykład dla domeny „twojadomena.pl”. Domena „twojadomena.pl” ma zostać przekierowana na podkatalog na nazwie „/stronawww”:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?twojadomena\.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !/stronawww/
RewriteRule ^(.*)$ /stronawww/$1 [L]
WAŻNE! Taki przygotowany plik „.htaccess” należy umieścić w katalogu głównym serwera, na którego adres IP została przekierowana domena.

Przekierowanie subdomen na podkatalogi na serwerze w home.pl (.htaccess)

Co będzie w przypadku, gdy będziemy chcieli przekierować wszystkie subdomeny w domenie np. „twojadomena.pl” na odpowiadające ich nazwie katalogi? Gdyby ta operacja wykonywana była na podstawie powyższego przykładu, to plik „.htaccess” w bardzo krótkim czasie zwiększyłby swoją objętość. Otóż jest na to bardziej optymalny sposób:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?twojadomena\.pl$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.twojadomena\.pl$ [NC]
RewriteRule .* /%2%{REQUEST_URI}

W ten oto prosty sposób mamy możliwość przepisania wszystkich subdomen o adresie „www.*.twojadomena.pl” na odpowiadające ich nazwie katalogi. Jest to optymalne rozwiązanie, ponieważ wprowadzanie jakichkolwiek modyfikacji w konfiguracji domeny nie jest wymagane. Znak gwiazdki * oznacza dowolny ciąg znaków, czyli dowolną subdomenę.

Dodatkowe informacje oraz plusy przedstawionego rozwiązania

Reguły zadziałają także dla domen przypisanych z zewnętrznego serwera DNS na adres IP (rekord A) i/lub adres domeny (rekord CNAME) w sieci home.pl, pozwalając przekierować taką domenę na podkatalog bez konieczności przypisywania jej do serwera.

Dużym plusem przy zastosowaniu przekierowania tego typu jest fakt, iż aplikacja nie jest zamykana w ramach danego podkatalogu za pomocą mechanizmu „chroot” i mamy dostęp do skryptów i katalogów opublikowanych w ramach całego serwera. Pozwala to nam np. na includowanie skryptów w PHP znajdujących się powyżej drzewa podkatalogu, na który przekierowaliśmy domenę.

Korzystanie z tego typu przekierowania przy domenie przypisanej do serwera w home.pl (i skierowanej na katalog główny serwera)

Jeśli domena pierwszego rzędu (np. „twojadomena.pl”) jest skierowana na katalog główny serwera w home.pl, to należy zwrócić uwagę na fakt, że próba wywołania adresu „dowolna_nazwa.twojadomena.pl”, spowoduje przekierowanie do katalogu „/dowolna_nazwa”.

Jeśli katalog „/dowolna_nazwa” istnieje, to przepisanie adresu można zdefiniować w pliku „.htaccess”, który należy umieścić w katalogu „/dowolna_nazwa”. W przypadku, jeśli katalog „/dowolna_nazwa” nie istnieje, to wywołany zostanie katalog główny serwera, do którego domena jest przypisana.

  • Czy artykuł był pomocny ?
  • Tak   Nie