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;