Nginx перенаправляет www certbot на не-www [дубликат]

На этот вопрос уже есть ответ здесь:

Я пытаюсь перенаправить HTTPS-запрос www на не-www, но Я не могу заставить его работать. Какую строку кода мне нужно изменить, чтобы добиться перенаправления?

server {
    root /var/www/mydomain.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name mydomain.com www.mydomain.com;

    #gZip stuff here...
    #Certbot stuff here...
}

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

    if ($host = mydomain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;

    server_name mydomain.com www.mydomain.com;
    return 404; # managed by Certbot
}
0
задан 14 November 2018 в 00:25
1 ответ

Я рекомендую использовать указанный ниже способ. Согласно документации Nginx, это рекомендуемый способ также обрабатывать перенаправление на уровне домена.

server {

        listen 443; 
        server_name www.example.com;
        return 301 $scheme://example.com$request_uri;
    }

    server {

        listen 443;
        server_name example.com;

         root /var/www/mydomain.com/html;
         index index.html index.htm index.nginx-debian.html;

        # Others Configuration...

    }

При желании вы также можете добавить еще один блок сервера для перенаправления HTTP на https.

server {

        listen 80;
        server_name www.example.com example.com;
        return 301 https://example.com$request_uri;
    }
1
ответ дан 4 December 2019 в 15:48

Теги

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