共计 967 个字符,预计需要花费 3 分钟才能阅读完成。
不少浏览器都开始逐渐更新至只支持 https 的网站,所以很多 http 网站都需要添加对 https 的支持,这时就需要涉及到 www 和不加 www 的跳转问题,由于 www 和不加 www 使用的是不同的证书,所以需要做 301 跳转处理,方案如下:
此处以域名 www.linuxidc.com 和 testhttps.com 为例,修改 Nginx 配置文件中 www.linuxidc.com 对应的配置文件:
server {
listen 80;
server_name linuxidc.com www.linuxidc.com;
return 301 https://www.linuxidc.com$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /linuxidc.com/cert.pem;
ssl_certificate_key /linuxidc.com/privkey.pem;
server_name linuxidc.com;
return 301 https://www.linuxidc.com$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /www.linuxidc.com/cert.pem;
ssl_certificate_key /www.linuxidc.com/privkey.pem;
server_name www.linuxidc.com;
}
作用说明:
第一段代码是将 http://www.linuxidc.com 和 http://linuxidc.com 301 重定向 https://www.linuxidc.com;
第二段代码是将 https://linuxidc.com 301 重定向 https://www.linuxidc.com;
第三段代码是指定 https://www.linuxidc.com 是 ssl 连接。
需要注意的是,第二段和第三段中的证书都需要各自域名对应的证书,比如说第二段就需要域名 https://linuxidc.com 对应的证书,第三段就需要 https://www.linuxidc.com 对应的证书。
按照上述示例修改为适合自己网站域名的设置,就可以实现在 https 模式下不加 www 强制跳转到 www 的功能。