Aby bylo možné optimalizovat webové stránky podle pravidel SEO, musí mít jednu doménu. Subdoména s www je považována za samostatnou doménu, v případě, že je nedostupná, vede k duplicitnímu obsahu. Co to znamená. Duplicity - nežádoucí prvky, které se často stávají příčinou poklesu pozice webu ve vyhledávačích. Proto se vyplatí provést přesměrování z domény www na doménu bez www. Na začátku se tedy subdoména www používala k označení serveru, že nemůže nasadit webový server a hostovat web. Nyní to již není nutné. V tomto článku se podíváme na to, jak provést přesměrování z www na bez www Nginx.
Nejjednodušší způsob, jak v Nginxu provést přesměrování pro doménu www, je vytvořit pro ni samostatnou sekci serveru a přesměrovat z ní. Například:
server {
server_name www.losst.ru;
return 301 $scheme://losst.ru$request_uri;
}
V případě, že potřebujete určit zpracování www a newww ve stejné serverové sekci, můžete použít podmínku a regulární výraz. Pokud má proměnná host na začátku písmena www, měli byste vrátit kód odpovědi 301 a odkaz, na který má být uživatel přesměrován:
if ($host ~* ^www.(.*)$) {
return 301 $scheme://$server_name$request_uri;
}
Kód by měl být přidán do sekce serveru webu, pro který chcete přesměrování nastavit. Pokud používáte certifikát LetsEncrypt SSL, bude třeba jej vygenerovat pro ověření domény www i newww. Požadavek na potvrzení by měl vrátit odpověď, nikoli přesměrování. Za tímto účelem můžete vytvořit proměnnou $need_redirect
a poté změnit její hodnotu pomocí několika podmínek:
set $need_redirect "0";
if ($host ~* ^www.(.*)$) {
set $need_redirect "1";
}
if ($request_uri ~* "well-known") {
set $need_redirect "0";
}
if ( $need_redirect ~ "1") {
return 301 https://$server_name$request_uri;
Pokud adresa URL obsahuje slovo well-known, které se používá v požadavku na ověření domény pro certifikát SSL, přesměrování se nezdaří. Nastavení uložte. Uložte nastavení a restartujte systém Nginx:
nginx -s reload
Nebo:
sudo systemctl restart nginx
Poté můžete otestovat, zda přesměrování funguje pomocí curl
:
curl -I www.losst.ru
Přesměrování se vrátí, v poli Location je uvedena adresa URL, na kterou má být uživatel přesměrován. Pokud se však pokusíte přistoupit na adresu URL z LetsEncrypt, k žádnému přesměrování nedojde:
curl -I https://www.losst.ru/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxx
Vše funguje podle očekávání. Tímto návod končí.