301跳转是永久性的跳转,这个定义一直是知道的,可是今天却让它把本身搞懵了一把。nginx
问题复现:浏览器
最近在升级https,在升级过程当中发现一个bug,就是当url不闭合的时候会301跳转到一个闭合的url上面,可是从https跳转后的url就变成http的了,例如:缓存
https://www.AAA.com/test 会301到 http://www.AAA.com/test/url
第一反应是nginx配置文件中作了这么一个跳转,而后去扒nginx的配置文件,把全部的rewrite看了一遍,注释掉全部疑是地方,仍是会有这个跳转···没有办法,spa
一怒之下把全部的http模块都注释掉了,结果我都开始怀疑人生了,仍是会有一个跳转,真是····code
后来开始跟你们讨论,一直在说301跳转,301跳转,永久性跳转,他是永久性跳转啊,浏览器颇有可能会记录到缓存里面的啊···因而,清楚浏览器缓存,从新去掉blog
rewrite部分,此次不跳转了,成功~it
最后把跳转部分替换成了http和https双支持的,搞定~class
下面附一下修改的配置:test
rewrite ^/([a-zA-Z0-9_\-\/]+[^\/])$ http://$host/$1/ permanent;
替换成:
rewrite ^/([a-zA-Z0-9_\-\/]+[^\/])$ $scheme://$host/$1/ permanent;