Nginx的 - 如何重定向(301)www到非www正确的bot http/https?

问题描述:

使用以下Nginx配置文件,我目前可以将所有HTTP www请求永久重定向到非万维网HTTPS。 http://www.example.com =>https://example;comNginx的 - 如何重定向(301)www到非www正确的bot http/https?

所有HTTPS非www请求AR以及手.. https://example.com

但是,万维网HTTPS请求不会被重定向到非www HTTPS https://www.examples.com - >https://www.examples.com I'ld像有: 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; 
     } 
} 

没有在你的配置手柄重定向到https://www.example.comhttps://example.com(但你知道)。

假设您的证书的有效期为www.example.com,您可以为端口443创建一个单独的server块并将其标记为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; 
    ... 
} 

详见this document

+0

非常感谢!是的,我的证书是有效的机器人www和没有www .. 我想过,但完全忘了把片段放在两个块... – erwin