Konfiguracja DNS dla własnej domeny, strona 2
Podstawowe informacje o konfiguracji DNS dla domeny: jak skonfigurować domenę, delegacja subdomeny, co to są „aliasy DNS”, co jest potrzebne do zrobienia przekierowania 301.
Spis treści
Jak zrobić przekierowanie z jednej strony WWW na drugą
Jak wiadomo, aby zrobić przekierowanie (redirect) z jednej domeny na drugą, musisz mieć możliwość konfiguracji pierwszej z nich. Ale przekierowanie na poziomie protokołu HTTP (a z takim zwykle mamy do czynienia w przypadku poprawnie wykonanego przekierowania), wymaga obsługi protokołu HTTP, czyli jakiegoś serwera WWW pod spodem.
Załóżmy zatem, że masz już wykupioną domenę leniwy.eu i na niej działa fajna stronka. Teraz chcesz sobie kupić drugą domenę, załóżmy superstrona.tld i zrobić „to coś”, żeby po wpisaniu w przeglądarce adresu http://superstrona.tld otworzyła się strona www.leniwy.eu.
Przekierowanie przy obsłudze wielu domen na serwerze WWW
Jeśli w konfiguracji serwera podającego Twoją stronę masz możliwość ustawiania aliasu (np. na poziomie virtualhost serwera Apache), wystarczy na poziomie konfiguracji DNS dla domeny superstrona.tld ustawić alias CNAME
@ CNAME www.leniwy.eu.
oraz na poziomie konfiguracji serwera WWW, ustawić alias superstrona.tld dla hosta wirtualnego www.leniwy.eu. Prawie zakończyłeś prace – po poprawnej propagacji Twoich konfiguracji, jeśli wpiszesz w przeglądarce http://superstrona.tld, zostanie pokazana Twoja fajna strona www.leniwy.eu. Jednak adres w przeglądarce się nie zmieni. Do tego trzeba jeszcze na poziomie serwera WWW ustawić, aby przy podaniu innego niż podstawowy adres strony, robiło przekierowanie 301 na adres właściwy. W zależności od typu serwera, można to robić na różne sposoby, np. sprawdzenie na poziomie PHP (na początu skryptu PHP obsługującego Twoją strone):
if ($_SERVER["SERVER_NAME"] != "www.leniwy.eu") { header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.leniwy.eu'); exit(0); }
Czy sprawdzenie na poziomie pliku .htaccess:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.leniwy\.eu RewriteRule ^(.*)$ http://www.leniwy.eu/$1 [R=301,L]
Przekierowanie na stronę, na którą nie masz wpływu
Przekierowanie możesz zrobić również na stronę, która nie należy do Ciebie, na którą nie masz wpływu, lub dla której nie chcesz modyfikować konfiguracji. Aby to zrobić, potrzebujesz serwer WWW, przez który będziesz w stanie podać własne nagłówki HTTP (lub którego konfiguracja pozwala na tworzenie redirectów 301/302). Wtedy w konfiguracji DNS dla domeny ustawiasz rekord A lub CNAME wskazujący na Twój serwer WWW, a w nim np. umieszczasz prosty skrypcik index.php (przy założeniu oczywiście, że serwer obsługuje PHP), który zrobi przekierowanie.
<?
header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.leniwy.eu'); exit(0);
?>
Duplikaty strony i przekierowania 301/302
Z duplikatem strony mamy do czynienia najczęściej wtedy, gdy przez pomyłkę konkretna strona jest dostępna pod więcej niż jednym adresem URL. Często zdarza się, że ktoś nie zwróci uwagi i w zależności od tego jak użytkownik wpisze, dana strona wyświetla się zarówno z adresem www jak i bez niego (czyli http://leniwy.eu i http://www.leniwy.eu). Inny przykład: http://www.leniwy.eu oraz http://www.leniwy.eu/index.php. Te przypadki (jak i wiele innych), to nic innego jak powielanie treści (duplikaty strony), czyli coś czego np. Google bardzo nie lubi. Przez duplikaty Twoja strona może się np. pojawiać w wynikach wyszukiwania niżej.
Aby pozbyć się duplikatów, możesz albo robić przekierowania na adres właściwy, albo ustawiać rel="canonical"
(o tym również przeczytasz pod powyższym linkiem).
Różnice pomiędzy przekierowaniem 301 i 302
Zgodnie z założeniami, przekierowanie z kodem 301 oznacza przekierowanie stałe, a przekierowanie z kodem 302 – tymczasowe. W przypadku 301 informujesz przeglądarkę (lub robota indeksującego, np. od Google), że adres właściwy strony jest inny niż podany (np. http://www.leniwy.eu zamiast http://superstrona.tld). W przypadku przekierowania tymczasowego 302 informujesz o tym, że strona jest chwilowo dostępna pod innym adresem. O ile dla użytkowników różnicy nie będzie (adres strony w przeglądarce się zmieni tak samo w obu przypadkach), to dla robotów indeksujących i algorytmów za nimi stojących, różnica jest ogromna.