【问题标题】:Nginx redirect everything to www httpsNginx 将所有内容重定向到 www https
【发布时间】:2019-04-30 00:18:53
【问题描述】:

我想将所有内容重定向到https://www

这是我的配置块,我尝试将非 www 重定向到 https 但不起作用。

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

    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;

    location /auth {
        ...
    }

    location / {
       ...
    }

    ssl_certificate /root/certs/fullchain.pem;
    ssl_certificate_key /root/certs/privkey.pem;

}

http://example.com 给出 404 错误

https://example.com 不会重定向到https://www

http://www.example.com 重定向到https://www

https://www.example 按原样工作

【问题讨论】:

    标签: web nginx nginx-reverse-proxy no-www


    【解决方案1】:
    server {
        listen 80;
        server_name example.com www.example.com
        return 301 https://www.example.com$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name example.com 
        ssl_certificate Certificate/For/example.com/fullchain
        ssl_certificate_key Key/For/example.com/ 
        return 301 https://www.example.com$request_uri;
    }
    
    server {
        listen 443;
        server_name  www.example.com
        ssl_certificate Certificate/For/www.example.com/fullchain
        ssl_certificate_key Key/For/www.example.com/key
    
        //do whatever you want with your https://www.example.com connection
    
    }   
    

    请记住同时拥有两个证书,一个用于 www 一个没有,就像您将示例重定向到 www 没有证书一样,这是一个不安全的步骤,并且会显示错误。

    希望我能帮上忙

    【讨论】:

      【解决方案2】:

      我认为您也应该为 https 服务器指定服务器名称:

      server {
          server_name www.example.com
          listen 443 ssl;
      
          ...
      
          ssl_certificate /root/certs/fullchain.pem;
          ssl_certificate_key /root/certs/privkey.pem;
      
      }
      

      您还可以将 http 服务器合并为一个来简化它们:

      server {
          listen 80;
          server_name example.com www.example.com
          return 301 https://www.$host$request_uri;
      }
      

      【讨论】:

      • 这解决了大多数问题,除了去 https:example 仍然没有重定向到www
      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2018-04-22
      • 1970-01-01
      • 2016-03-10
      • 2018-06-23
      相关资源
      最近更新 更多