Makseviisid Abuse

Kuidas suunata Nginxis ümber WWW-st mitte-WW-sse

22.02.2022, 20:05


Veebilehe optimeerimiseks vastavalt SEO-reeglitele peab sellel olema üks domeen. Alamdomeeni www loetakse eraldi domeeniks, juhul kui see on kättesaamatu, toob see kaasa dubleeritud sisu. Mida see tähendab. Duplikaadid - soovimatud elemendid, mis sageli muutuvad saidi positsiooni languse põhjuseks otsingumootorites. Seetõttu tasub teha ümberjuhtimine domeenilt www ilma www. Nii et alguses kasutati alamdomeeni www tähistamaks serverile, et ta ei saa kasutusele võtta veebiserverit ja võõrustada saiti. Nüüd ei ole see enam vajalik. Selles artiklis vaatame, kuidas teha ümbersuunamist www-ist ilma www Nginx.

Kuidas teha ümbersuunamist ilma WWW-ta NGINXis

Lihtsaim viis teha Nginxis www-domeeni ümbersuunamist on luua selle jaoks eraldi serveri jagu ja suunata sealt edasi. Näiteks:

server {
server_name www.losst.ru;
return 301 $scheme://losst.ru$request_uri;
}

Juhul, kui on vaja määrata www ja mitte-www käitlemine samas serverisektsioonis, saab kasutada tingimust ja regulaaravaldist. Kui host-muutuja alguses on www-tähed, peaksite tagastama 301-vastuse koodi ja lingi, kuhu kasutaja tuleb ümber suunata:

if ($host ~* ^www.(.*)$) {
return 301 $scheme://$server_name$request_uri;
}

Kood tuleks lisada selle saidi serverilõiku, mille jaoks soovite ümbersuunamist määrata. Kui kasutate LetsEncrypt SSL-sertifikaati, tuleb see genereerida nii www-domeeni kui ka mitte-www-domeeni valideerimiseks. Kinnitustaotlus peaks tagastama vastuse, mitte ümbersuunamise. Selleks saate luua muutuja $need_redirect ja seejärel muuta selle väärtust mõne tingimusega:

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;

Kui URL sisaldab sõna well-known, mida kasutatakse SSL-sertifikaadi domeeni valideerimise taotluses, ebaõnnestub ümbersuunamine. Salvestage seaded. Salvestage seaded ja taaskäivitage Nginx:

nginx -s reload

Või:

sudo systemctl restart nginx

Seejärel saate testida, kas ümbersuunamine toimib, kasutades curl-i:

curl -I www.losst.ru

Ümbersuunamine tagastab, väljal Location on URL, kuhu kasutaja ümber suunata. Aga kui te proovite LetsEncryptist URLile ligi pääseda, siis ei toimu ümbersuunamist:

curl -I https://www.losst.ru/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxx

Kõik toimib ootuspäraselt. See on juhendi lõpp.