如今越來越多的網站已經開始安裝SSL證書,只要安裝ssl證書之后,可以保障網站的數據安全,關于ssl證書的內容,之前已經介紹過很多了,今天為大家講解的是Nginx 301永久重定向配置以及自動跳轉https配置方法。
一、Nginx 301 重定向跳轉不支持 GET 參數的問題描述
首先來看看子凡在 Nginx 配置文件中的一個 301 跳轉的配置,看上去這就是一個 Nginx 環境標準通用的 301 重定向配置,并沒有錯誤,也可以實現從 http 到 https 的 301 跳轉,但是由于淚雪用戶中心的頭像調用有較大的開放性和適配度,所以可以直接通過動態的 GET 參數獲取頭像,例如:http://i.leiue.com/avatar.php?name=leixue,通過 HTTP 狀態查詢工具查詢結果如下圖:
301 跳狀態已經成功,但是我們仔細看 Location 返回的值就是:https://i.leiue.com/avatar.php?name=leixue?name=leixue,已經不僅僅是將 http 換成 https 了,而是后面的 GET 參數也被重復了一遍,所以也就導致了最后的 301 重定向跳轉失敗和錯誤了。
二、Nginx 301 重定向跳轉支持 GET 參數的配置方法
通過上述子凡的一些經歷做過簡單的描述和驗證后,只是初步的發現了問題,而接下來需要的就是解決這個問題,那么最簡單直接的還是直接上 Nginx 的配置代碼:
經過簡單的修改后,就已經完美解決問題,有點正則的感覺,所以如果大家在做 Nginx 的 301 跳轉的時候可以稍微的注意一下,或者你也在做 301 跳轉的時候遇到過一些錯誤,不妨試試這個方法。