Domena z www - nie twórzmy niepotrzebnych ograniczeń
Problem
Po wpisaniu w Google zapytania jak wybrać domenę, otrzymamy w przybliżeniu 1,320,000 wyników. Jak widać, jest dość popularne zagadnienie. Każdy, kto zakłada własną stronę, może dowiedzień się jak wybrać piękną, unikalną domenę, sugerującą korzyści, jakość produktu, łatwo wymawianą, łatwą do zapamiętania… bla bla bla. Część z tych artykułów ociera się już o bełkot, choć można przeczytać także coś wartościowego.
Dziwi mnie jednak, dlaczego tak wielu administratorów stron (adminów, webmasterów i im podobnych) nie zauważa problemu subdomeny www? Bardzo często spotykam się z sytuacją, gdy jedynym działającym adresem strony jest www.example.org, natomiast example.org nie wskazuje na żaden serwer, albo - co gorsze - wskazuje na stronę firmy hostingowej.
Dziwi mnie niesamowicie to, że wiele firm walczy o jak najkrótsze nazwy, nieraz odkupując domeny za duże pieniądze. Po czym cały efekt jest psuty przez nieudolnego admina/webmastera etc, bo do ślicznej, trzyliterowej domeny trzeba dopisać kolejne 4 znaki - www. Złego wizerunku strony dopełnia fakt, że w gros przypadków nie ma żadnego uzasadnienia w wymuszaniu na użytkownikach dopisywania www.
Osobiście wpisując adresy stron, niemal zawsze pomijam www. Często niestety kończy się to koniecznością ponownego wpisania adresu - tym razem z www. Irytuje mnie to bardziej niż “strona przygotowana dla IE 5¼”. Szczególnie, że rozwiązanie problemu jest niesamowicie banalne, a zaniechanie - w mojej opinii - wynika jedynie z ignorancji adminów.
Rozwiązanie I (dobre, z wadami) - dajemy wybór internautom
Dosyć dobrym rozwiązaniem jest takie skonfigurowanie sewera www, aby dla obu adresów (example.org i www.example.org) zwracał tę samą stronę. W Apache można np. skonfigurować dwa wirtualne hosty wskazujące na to samo położenie dokumentów - DocumentRoot.
Dzięki takiemu rozwiązaniu, obojętnie czy odwiedzający wpisze www.example.org czy example.org - zawsze zobaczy stronę której szuka.
Wady rozwiązania I
Internauta jest zdezorientowany
Mniej doświadczeni internauci (np. ci, którzy na e mówią “Internet”) mogą czuć sie zdezorientowani, a nawet zagrożeni tym, że jakaś strona ma adres bez www na początku.
Możliwe rozwiązania: wykorzystać Rozwiązanie II lub zignorować problem ;)
Przeglądarka jest zdezorientowana
Należy pamiętać o tym, że przeglądarka odsyła ciasteczka tylko do tych domen, do których powinna je odesłać. Jeżeli więc w PHP ustawiamy ciasteczko w ten sposób:
setcookie('kruche', 'z_cukrem');
to nie dziwmy się, że użytkownik który np. zalogował się na example.org/login/, nie będzie zalogowany na www.example.org/.
Możliwe rozwiązania: ustawiajmy ciasteczka korzystając z opcjonalnych parametrów setcookie:
bool setcookie ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]]])
Czyli możemy napisać tak:
setcookie('kruche', 'z_cukrem', time() + 60 * 60 * 24 * 31, '/', '.example.org');
ciasteczko będzie widoczne dla wszystkich subdomen naszego serwisu.
Takie podejście do ciasteczek jest bardzo ważne. Znam serwis, który działa pod dwoma adresami: example.org i www.example.org. Można w tym serwisie dokonać płatności za zamówienie za pośrednictwem jednego z systemów płatności online. Jednak powrót z systemu transakcyjnego następuje zawsze na adres www.example.org. Wiadomo jaki jest efekt: gdy loguję się na example.org - zamiast potwierdzenia płatności, otrzymuję ekran logowania…
Innym problemem jest zapamiętywanie haseł i wartości wpisanych w formularzach przez przeglądarki. Wartości te są także przypisywane do domen. Jeżeli zapamiętam hasło na example.org/login/, to nie będzie ono proponowane przez przeglądarkę na www.example.org/login/
Możliwe rozwiązania: Rozwiązanie II
serwer jest zdezorientowany
Przy korzystaniu z dwóch wirtualnych hostów, w zależności od konfiguracji serwera, możemy mieć problem np. ze statystykami (odzielne statystyki dla www.example.org i example.org) lub ze skonfigurowaniem SSL. Niektóre roboty i wyszukiwarki mogą traktować adresy www.example.org i example.org jako niezależne strony (choć zdaje się, że Google już sobie z tym poradziło).
Możliwe rozwiązanie: Rozwiązanie II
Rozwiązanie II (dobre) - odbieramy wybór internautom
W tym rozwiązaniu należy dać wybór internautom, przez skonfigurowanie serwera tak, aby działały oba adresy (www.example.org i example.org) - tak jak w Rozwiązaniu I - a następnie odebrać wybór przez ustawienie przekierowania na jednym z adresów. Takie rozwiązanie możemy zrealizować na dwa sposoby:
Apache i mod_rewrite
Używamy mod_rewrite w Apache aby przekierować użytkownika z example.org na www.example.org. Można to zrobić np. tak:
<VirtualHost 127.0.0.1>
ServerName example.org
DocumentRoot /var/www/i/co/tam/jeszcze_chcecie
RewriteEngine On
RewriteRule ^/(.*)?$ http://www.example.org/$1?%{QUERY_STRING} [R=301,L]
</VirtualHost>
Moje ulubione rozwiązanie. Jest o tyle dobre, że przekieruje użytkownika bez utraty ścieżki i parametrów przekazanych metodą GET. Wady: dane przekazane metodą POST zostaną utracone.
PHP i header()
Jeżeli nie macie możliwości modyfikowania konfiguracji Apache, podobne rozwiązanie można uzyskać korzystając z PHP i funkcji header():
if($_SERVER['HTTP_HOST'] == 'example.org'){
header("Location: http://www.example.org{$_SERVER['REQUEST_URI']}");
die();
}
i po problemie!
Jak widać, można bez problemu skonfigurować serwer tak, aby działały obie domeny - www.example.org lub example.org. Cała trudność polega jedynie na zauważeniu problemu. W zależności od potrzeb możemy skorzystać z któregoś z rozwiązań. W obu jednak trzeba pamiętać o tym, że serwery DNS muszą zwracać IP serwera dla obu domen.
Apel dnia ;)
Nie narzucajmy sztucznych i niepotrzebnych ograniczeń!
Takim niepotrzebnym ograniczeniem jest właśnie wymaganie wpisywania www lub to o którym pisał kiedyś Robert Drózd: Za krótkie - źle, za długie - też źle.
wrzesień 16th, 2007 at 20:37:44
Popieram, dziwi mnie jak bardzo ludzie są przyzwyczajeni do wpisywania wszystkiego z www na początku (99% nawet nie zdaje sobie sprawy, że to http:// ma znaczenie, a nie samo www). Jeszcze bardziej szokuje, jak często admini nie konfigurują stron pod adresem bez www. Kompromitujące. Polecam też odwiedzić http://no-www.org/.
wrzesień 16th, 2007 at 21:14:02
sopel: ciekawa strona, choć wprowadzanie tajemniczej klasyfikacji (A, B, C) jakoś nie zachęca mnie do przyłączenia się ;) Postulaty no-www idą także dosyć daleko - całkowite pozbycie się www nie jest moim zdaniem koniecznością.
A co do przyzwyczajeń ludzi - zaskakująco dużo ludzi dopisuje też www do adresów stron, które tego www nigdy nie miały - np. www.galeria.netcoffee.pl zamiast galeria.netcoffee.pl…
wrzesień 16th, 2007 at 21:51:23
Ja się tylko uśmiecham, jak widze osobę wklepującą www. Żenujące jest jednak, jak student informatyki zaczyna każdą stronę od www. A najlepiej wygląda ping www.wp.pl :)
Co do samego WWW. Osobiście w niektórych domenach stosuję, bo wydaje mi się, że adres prezentuje się znacznie lepiej i szybciej wpada w oko. Przykład - adres mojego bloga.
I co do ciasteczek - dzięki za informacje o “.example.com”. Problem pozostaje jednak z sesjami. Sesja dla example.com != sesji dla www.example.com.
wrzesień 16th, 2007 at 22:10:12
sesja zapamietana w cooki z .domena.pl bedzie działac poprawnie tez na www. tak na 99% ;]
a co do www. i bez www to domeny regionalne wroclaw.pl itp jak na przykład strony miast moga dzialac tylko z www.wroclaw.pl, bo samo wroclaw.pl jest wlasnoscia nasku i nie jest w pewnym sensie funkcionalna domena, pozatym przedrostek “www” nie jest niczym innym jak tylko i wyłacznie subdomena, dla danej domeny. dla tego czesto tez słychac pytania jak niektorzy robia kolejne serwer www pod www2, www4 :] i pytania jak to mozliwe ze oni tak moga ;]
wrzesień 16th, 2007 at 22:28:34
Acid: dzięki za sensowne wyjaśnienie sytuacji z www dla domen regionalnych. Ale to wyjaśnia tylko niektóre przypadki.
wrzesień 20th, 2007 at 22:44:22
Istnieje coś takiego jak ServerAlias, dzięki któremu nie musimy definiować osobnego VirtualHosta.
listopad 17th, 2007 at 21:49:45
mi to generalnie www nie przeszkadza ale ne podoba mi sie jak strona jest dostępna tylko przez www.
muszę przyznać ze czasem łapie się na pisaniu www. - zwykle jak nie mogę sobie przypomnieć adresu - takie 3 literki na zastanowienie ;)
co do przekierowań - w dns jest coś takiego jak CNAME i zwykle afaik tak to się rozwiązuje ze tworzy sie domena.pl i cname www.domena.pl wskazujący na domena.pl.
pozdrawiam,
MarcinDomanski