С помощью следующего файла конфигурации Nginx я в настоящее время могу перенаправить все HTTP-запросы www на HTTPS без www. http://www.example.com => https: // example; com

Все HTTPS-запросы без www - хорошо обработаны. https://example.com

Но запрос www HTTPS НЕ перенаправляется на HTTPS без www. https://www.examples.com -> https://www.examples.com Я хотел бы иметь: https://www.examples.com -> https://examples.com

Что не хватает в моей конфигурации? спасибо за отзыв

Default.conf

server {
        server_name example.com;
        return 301 https://example.com$request_uri;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name www.example.com;
        return 301 $scheme://example.com$request_uri;
}

server {
       listen 443 ssl http2 default_server;
       listen [::]:443 ssl http2 default_server;
       server_name example.com;
       include snippets/ssl-example.com.conf;
       include snippets/ssl-params.conf;

       root /var/www/html;
       index index.html index.htm;

       location / {
         try_files $uri $uri/ =404;
       }
}
2
user762579 27 Дек 2016 в 17:41

1 ответ

Лучший ответ

Ничто в вашей конфигурации не обрабатывает перенаправление https://www.example.com на https://example.com (но вы это знали).

Предполагая, что ваш сертификат действителен для www.example.com, вы можете создать отдельный блок server для порта 443 и пометить его как default_server (например, у вас уже есть для порта 80).

Фактически, вы можете объединить все, что не https://www.example.com, в один блок server:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-example.com.conf;
    include snippets/ssl-params.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com;
    include snippets/ssl-example.com.conf;
    include snippets/ssl-params.conf;
    ...
}

Дополнительные сведения см. В этом документе.

1
Richard Smith 27 Дек 2016 в 18:32
Большое спасибо ! да, мой сертификат действителен для ботов www и no-www .. Я подумал, но совсем забыл поместить сниппеты на оба блока ...
 – 
user762579
27 Дек 2016 в 19:41