maxxtweek
@maxxtweek
Начинающий бекэнд разработчик

Как правильно настроить редирект с www на без www?

Всем доброго времени суток, перечитал много мануалово в гугле, но ни один не работает, надеюсь на Вашу помощь)
Установил ssl сертификат для nginx'a через ppa:python-certbot-nginx, после установки и автоматической настройки конфиг стал таким.
Сейчас есть редирект с http на https, но как сделать, чтобы с www редиректил на https без www, без понятия, как бы я не надругался над конфигом, он не хочет работать :С
/etc/nginx/sites-available/site.ru

Сервер находится на DigitalOcean
server {
         listen 443 ssl;
 
        root /var/www/SonyTwo;
        ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem; # managed by Certbot
        ssl_dhparam /etc/nginx/dhparam.pem;

        index index.html index.htm index.nginx-debian.html;

        server_name site.ru; 

        location / {
                try_files $uri $uri/ =404;
        }
}

server {
   if ($host = www.site.ru) {
       return 301 https://$host$request_uri;
    }
    if ($host = site.ru) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

        listen 80;
        listen [::]:80;

    server_name site.ru;
    return 405; # managed by Certbot
}

Заранее благодарю за ответ
P.S. На сервере только html файлы, php не устанавливал.
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
@webfln
Конструкции if лучше не использовать. Для вашего случая:

server {
server_name www.site.ru;
listen 80 ;
return 301 https://$host$request_uri;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы