第一次直面http的301跳转

301跳转是永久性的跳转,这个定义一直是知道的,但是今天却让它把自己搞懵了一把。

 

问题复现:

最近在升级https,在升级过程中发现一个bug,就是当url不闭合的时候会301跳转到一个闭合的url上面,但是从https跳转后的url就变成http的了,例如:

https://www.AAA.com/test 会301到 http://www.AAA.com/test/

 

    第一反应是nginx配置文件中做了这么一个跳转,然后去扒nginx的配置文件,把所有的rewrite看了一遍,注释掉所有疑是地方,还是会有这个跳转···没有办法,

一怒之下把所有的http模块都注释掉了,结果我都开始怀疑人生了,还是会有一个跳转,真是····

 

    后来开始跟大家讨论,一直在说301跳转,301跳转,永久性跳转,他是永久性跳转啊,浏览器很有可能会记录到缓存里面的啊···于是,清楚浏览器缓存,重新去掉

rewrite部分,这次不跳转了,成功~

    最后把跳转部分替换成了http和https双支持的,搞定~

 

下面附一下修改的配置:

rewrite ^/([a-zA-Z0-9_\-\/]+[^\/])$ http://$host/$1/ permanent;

替换成:

rewrite ^/([a-zA-Z0-9_\-\/]+[^\/])$ $scheme://$host/$1/ permanent;

 

posted on 2017-04-01 17:57  asif  阅读(247)  评论(0编辑  收藏  举报

导航