https下不加www的强制跳转

Published on with 0 views and 0 comments

不少浏览器都开始逐渐更新至只支持https的网站,所以很多http网站都需要添加对https的支持,这时就需要涉及到www和不加www的跳转问题,由于www和不加www使用的是不同的证书,所以需要做301跳转处理,方案如下:
此处以域名www.testhttps.comtesthttps.com为例,修改Nginx配置文件中www.testhttps.com对应的配置文件:

server {
    listen 80;
    server_name testhttps.com www.testhttps.com;
    return 301 https://www.testhttps.com$request_uri;
}
server {
    listen 443 ssl;
    ssl_certificate /testhttps.com/cert.pem;
	ssl_certificate_key /testhttps.com/privkey.pem;
    server_name testhttps.com;
    return 301 https://www.testhttps.com$request_uri;
}
server {
    listen 443 ssl;
    ssl_certificate /www.testhttps.com/cert.pem;
	ssl_certificate_key /www.testhttps.com/privkey.pem;
    server_name  www.testhttps.com;
}

作用说明:
第一段代码是将http://www.testhttps.com和http://testhttps.com 301重定向https://www.testhttps.com;
第二段代码是将https://testhttps.com 301重定向https://www.testhttps.com;
第三段代码是指定https://www.testhttps.com 是ssl连接。
需要注意的是,第二段和第三段中的证书都需要各自域名对应的证书,比如说第二段就需要域名https://testhttps.com 对应的证书,第三段就需要https://www.testhttps.com对应的证书。

按照上述示例修改为适合自己网站域名的设置,就可以实现在https模式下不加www强制跳转到www的功能。


标题:https下不加www的强制跳转
作者:M1d3r
地址:https://shaobin.wang/articles/2021/01/15/1610693707876.html