Gdzieś w początkach internetu przyjęło się, że każda usługa ma swój przedrostek – subdomenę, np. ftp, www, mail… I choć dla wielu adres „www.nazwa_domeny.pl” i „nazwa_domeny.pl” to jedno i to samo – tak nie jest, o czym czasem zapominają nawet „doświadczeni administratorzy w dużych firmach” i czasem zdarza się, że pomijając subdomenę (!) „www.” w adresie strony trafiamy na stronę błędu.

Sam wychodzę z założenia, że nim adres krótszy – tym łatwiej go podać/zapamiętać. Mimo to sporo osób jeszcze wchodzi na moją stroną wpisując z przodu „www.”, tak też linkuje – a by to unormować stosuję przekierowanie z adresu „www.nazwa_domeny.pl” na „nazwa_domeny.pl”.

I o tym dziś będzie…

Kasujemy „www” z adresu strony

Z racji tego, że powoli startuje z małym cyklem poświęconym Nginx, to oprócz – standardowo – regułki dla Apache, będzie też i dla Nginx.

Apache2 i .htaccess

Tu sprawa jest prosta, szybka i przyjemna – wystarczy skorzystać z pliku .htaccess, i w nim dodać odpowiednią regułę:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.rembiejewski.pl$
RewriteRule ^/?$ "http\:\/\/rembiejewski\.pl" [R=301,L]

Wprawdzie można odpowiedni wpis dodać i do pliku konfiguracyjnego vHosta (jak w przypadku Nginx), ale skorzystanie z pliku .htaccess oznacza, że:

  • Wpisu może dokonać każdy użytkownik z dostępem do plików strony, bez potrzeby edytowania parametrów serwera
  • Zmiany są aktywne od razu, bez potrzeby restartu/odświeżenia ustawień serwera

Nginx i vHost

W przypadku tego serwera może nie jest trudniej, ale już wymagana jest edycja pliku danego wirtualnego hosta (vHost/domena), np.:

  • /etc/nginx/sites-enabled/default
  • /etc/nginx/sites-enabled/rembiejewski.pl

Tam w sekcji „serwer” dodajemy linijkę:

return 301 $scheme://$http_host$request_uri;

Czyli będzie to wyglądało tak:

server {
 [...]
 return 301 $scheme://$http_host$request_uri;
 [...]
}

Wersja alternatywna – najczęściej prze zemnie wykorzystywane przekierowanie, które kieruje cały ruch bezpośrednio na domenę, z pominięciem „subdomeny” www:

# www.domena -> domena
 server {
 server_name www.[DOMENA];
 return 301 $scheme://[DOMENA]$request_uri;
}

Ew. jakby ktoś chciał odwrotnie:

server {
 server_name [DOMENA];
 return 301 $scheme://www.[DOMENA]$request_uri;
}

Oczywiście podany wyżej kod (1 z 2) wstawiamy powyżej standardowe wpisu konfiguracyjnego serwera.

I na koniec restart serwera:

sudo service nginx restart

lub chociaż odświeżenie ustawień:

sudo service nginx reload
(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk