Төлем әдістері Abuse

Nginx жүйесінде WWW-ден WWW емеске қалай қайта бағыттауға болады

22.02.2022, 20:05


Сайтты SEO ережелеріне сәйкес оңтайландыру үшін оның бір домені болуы керек. www бар қосалқы домен бөлек домен болып саналады, егер ол қолжетімді болмаса, бұл қайталанатын мазмұнға әкеледі. Ол нені білдіреді? Көшірмелер - іздеу жүйесінің нәтижелеріндегі сайттың позициясын жиі төмендететін жағымсыз элементтер. Сондықтан www доменінен www емес доменге қайта бағыттаған жөн. Сонымен, бастапқыда www ішкі домені сервердің веб-серверді орналастыра алмайтынын және веб-сайтты орналастыратынын көрсету үшін пайдаланылды. Енді бұл қажет емес. Бұл мақалада біз www-ден www емес Nginx-ке қайта бағыттауды қарастырамыз.

NGINX жүйесінде WWWсіз қалай қайта бағыттауға болады

Nginx жүйесінде www домені үшін қайта бағыттауды орындаудың ең қарапайым жолы - ол үшін бөлек сервер бөлімін жасау және сол жерден қайта бағыттауды орындау. Мысалы:

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

Бір сервер бөлімінде www және www емес өңдеуді көрсету қажет болған жағдайда шарт пен тұрақты өрнекті пайдалануға болады. Хост айнымалысы www әріптерімен басталғанда, 301 жауап кодын және пайдаланушы қайта бағытталуы керек сілтемені қайтару керек:

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

Код қайта бағыттау конфигурацияланатын сайттың сервер бөліміне қосылуы керек. LetsEncrypt SSL сертификатын пайдалансаңыз, оны жасау үшін www доменін және www емес домендерді растау қажет. Растау сұрауы үшін қайта бағыттау емес, жауап қайтарылуы керек. Ол үшін $need_redirect айнымалы мәнін жасап, оның мәнін бірнеше шарттармен өзгертуге болады:

 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;

URL мекенжайында SSL сертификаты үшін доменді тексеру сұрауында пайдаланылатын белгілі сөз болған кезде, қайта бағыттау сәтсіз болады. Параметрлеріңізді сақтаңыз. Параметрлерді сақтап, Nginx-ті қайта іске қосыңыз:

 nginx -s reload

Немесе:

sudo systemctl restart nginx

Осыдан кейін қайта бағыттаудың curl арқылы жұмыс істейтінін тексеруге болады:

 curl -I www.losst.ru

Қайта бағыттау қайтарылады Орын өрісінде пайдаланушы қайта бағытталуы керек URL мекенжайы бар. Бірақ LetsEncrypt арқылы URL мекенжайына кіруге әрекеттенсеңіз, қайта бағыттау болмайды:

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

Барлығы жоспар бойынша, күткендей жұмыс істеп жатыр. Осы кезде нұсқауларды толық деп санауға болады.