不少浏览器都开始逐渐更新至只支持https的网站,所以很多http网站都需要添加对https的支持,这时就需要涉及到www和不加www的跳转问题,由于www和不加www使用的是不同的证书,所以需要做301跳转处理。最近博客启用了https,为了实现http://vvars.com、http://www.vvars.com、https://vvars.com 用301重定向https://www.vvars.com查了很多资料 ,没有找到完美的解决方案,经过一番探索,特记录下折腾过程,下面是方法1。
server {
listen 80;
server_name vvars.com www.vvars.com;
return 301 https://www.vvars.com$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /home/wwwroot/PHP7/etc/vvarsssl/vvars.crt;
ssl_certificate_key /home/wwwroot/PHP7/etc/vvarsssl/vvars.key;
server_name vvars.com;
return 301 https://www.vvars.com$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /home/wwwroot/PHP7/etc/vvarsssl/vvars.crt;
ssl_certificate_key /home/wwwroot/PHP7/etc/vvarsssl/vvars.key;
server_name www.vvars.com;
.......
}
说明:第一段代码是将http://www.vvars.com和http://vvars.com  ; 301重定向https://www.vvars.com,第二段代码是将https://vvars.com 301重定向https://www.vvars.com,第三段代码为指定主机用ssl连接,......为网站程序的配置文件。
然后用站长工具 http://tool.chinaz.com/pagestatus/ 检查下http状态:
nginx强制启用https方法
1.PNG
http 301跳转到带www的https链接方法
2.png
可以看到返回状态码均为301,所有http和不带www的域名都301重定向到了带www的https链接,这样有利于SEO。
评论已关闭