首页  >  问答  >  正文

linux - Nginx中http与https一级域名二级域名重定向的问题

~~请教各位前辈一个问题:
今天将站点开启了SSL支持,我想做到:
不管访问https://domain.com 还是http://domain.com亦或者是http://www.domain.com,均301自动跳转到https://www.domain.com, 也就是说https://www.domain.com作为唯一的访问Url
请问应该怎样写配置?我的做法是这样的:

但是访问会出错。显示连接失败。
去掉

server {
    listen 443;
    server_name domain.com;
    return 301...
}

这段便可以正常访问,但是访问https://domain.com不会跳转到https://www.domain.com

有什么办法解决吗?
~~
已解决:https://www.iots.vip/post/ngi...

PHPzPHPz2713 天前969

全部回复(3)我来回复

  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:21:44

    连接失败,http status code是多少,感觉这样子配置没啥问题啊。

    server {
            listen 443 ssl;
            server_name www.test.com;
            root html;
            index index.html index.htm;
            ssl_verify_client off;
            ssl_certificate /etc/nginx/test.com.crt;
            ssl_certificate_key /etc/nginx/test.com.pem;
            ssl_client_certificate /etc/nginx/ca.com.crt;
            location / {
                    proxy_set_header X-http-type https;
                    proxy_set_header X-request-ip $remote_addr;
                    proxy_pass http://127.0.0.1:9004/;
            }
            ssl_session_timeout 5m;
            ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
            ssl_prefer_server_ciphers on;
        }
    server {
            listen 443;
            server_name test.com;
            return 301 https://www.test.com$request_uri;
    
        }
    server {
            listen 80;
            server_name test.com www.test.com;
            return 301 https://www.test.com$request_uri;
    
        }
        

    在我这没问题,这样子,都能实现跳转。

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:21:44

    连接已重置。 并无状态码。

    回复
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:21:44

    关于domain.com跳转www.domain.com的问题你可以在域名解析的时候直接进行设置

    www A记录 10.10.10.10
    @ cname www.baidu.com.(记得这里有个“点”)

    回复
    0
  • 取消回复