NGINX: Редирект c WWW

На днях попался мне онлайн тест веб-сайта.
Решил воспользоваться проверкой, получил в выдаче несколько ошибок, одна из которой звучала как:

Редирект c WWW
Технически, домены с www и без www — это два разных ресурса, поисковые системы индексируют и ранжируют их отдельно, а ссылки будут иметь разный вес.
Это может грозить: Понижением в поисковой выдаче; Фильтром, т.к. поисковик может принять один сайт за дубликат другого;
Проблемами с авторизацией на сайте и другим функционалом, использующим cookie;
Проблема решается 301 редиректом и указанием поисковикам основного зеркала.
С точки зрения продвижения сайта домен без www лучше, потому что не является доменом третьего уровня, а его длина всегда будет меньше.https://a.pr-cy.ru/
Заодно вспомнил, что в зоне есть запись www.
Давайте исправим это, добавив в конфигурацию nginx запись о редиректе.

Как веб-сервер я использую NGINX.

Правим конфиг NGINX, который отвечает за проблемный сайт:

vi /usr/local/etc/nginx/conf.d/mysite.ru.conf 
server {
        listen 80;
        server_name www.mysite.ru mysite.ru;
        return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.mysite.ru;
    ssl_certificate /usr/local/etc/letsencrypt/live/www.mysite.ru/fullchain.pem;
    ssl_certificate_key /usr/local/etc/letsencrypt/live/www.mysite.ru/privkey.pem;
    return 301 https://mysite.ru$request_uri;
}

server {
        listen 443 ssl http2;
        server_name mysite.ru;
        ssl_certificate /usr/local/etc/letsencrypt/live/mysite.ru/fullchain.pem;
        ssl_certificate_key /usr/local/etc/letsencrypt/live/mysite.ru/privkey.pem;
        index index.php;
        root  /usr/local/www/mysite.ru;
 
location ~ \.php$ {
      ............
      }
}

В первой секции server мы описали два сайта  www.mysite.ru, mysite.ru и делаем редирект на https
Во второй секции server описываем сайт www.mysite.ru для работы по ssl.
Третья секция описывает редирект  www.mysite.ru на mysite.ru.

Получим сертификат от Lets’n Crypt для домена www.mysite.ru:

# certbot certonly -w /usr/local/www/mysite.ru/ -d www.mysite.ru
Выхлоп Certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): 2
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate Performing the following challenges:
http-01 challenge for www.marvins.ru
Using the webroot path /usr/local/www/marvins.ru for all unmatched domains.
Waiting for verification…
Cleaning up challenges IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/usr/local/etc/letsencrypt/live/www.mysite.ru/fullchain.pem
Your key file has been saved at:
/usr/local/etc/letsencrypt/live/www.mysite.ru/privkey.pem
Your cert will expire on 2020-09-26. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
«certbot renew»
— If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Проверяем корректность конфигурационного файла и перезапускаем nginx:

# nginx -t && nginx -s reload

Всем пока:)!

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.