nginx环境配置https后,网站http跳转至https返回302解决办法
nginx环境下配置好https后,为了提升网站用户体验及优化,在nginx配置文件中添加了http跳转到https配置信息,结果http链接全部跳转到了网站的首页(即http://www.lmdouble.com/xxx全部跳转至https://www.lmdouble.com/)。通过工具检测发现网站http状态码返回的为302,即暂时性重定向,正确的http状态码返回的应当为301,即永久重定向,一般情况下很少有站长对网站做302,这对网站的排名优化很不友好。既然返回的状态码不对,说明nginx的配置信息设置了错误,经查看nginx配置文件 nginx.conf发现原来在http跳转到https的规则上是跳转到https://www.lmdouble.com 。
#Jump to HTTPS lmdouble.com
server {
listen 80;
server_name www.lmdouble.com;
rewrite ^(.*)$ https://www.lmdouble.com;
}
这是跳转到一个固定的链接,也难怪点击所有的http页面会跳转到网站的首页,最后在代码后面添加参数 /$1 permanent 解决问题。
#Jump to HTTPS www.lmdouble.com
server {
listen 80;
server_name www.lmdouble.com;
rewrite ^(.*)$ https://www.lmdouble.com/$1 permanent;
}
再通过工具检测返回的http状态码为正常的301永久重定向了。
通过此次问题在以后也可以解决一个问题,就是网站需要整体维护时,又不想把整个站点关闭,可以通过修改rewrite规则达到访问所有页面都跳转到一个指定的页面的目的。
如
#Jump to HTTPS www.lmdouble.com
server {
listen 80;
server_name www.lmdouble.com;
rewrite ^(.*)$ https://www.lmdouble.com/error_page.html;
}
https://www.lmdouble.com/0907521977.html
上一篇: wordpress 媒体上传文件大小限制设置无效的解决办法 | 下一篇: SEO中的四处一词是什么? |