IIS配置Url重寫實現http自動跳轉https的重定向方法(100%解決)
引言
這種文章網上可以說一搜一大把,但是我為什麼還要寫呢,因為一搜一把沒把我氣死,都是東抄西挪的東西,搞得整個文件質量太差。基本上看了幾篇,連蒙帶猜才配置好。
當然我在2019都要來了的時間寫這個文章,有點像49年入國軍的感覺。但是改寫的內容還是得寫,誰叫IIS還是很好用的。
我們先說需求場景
使用場景:首先你的有需求,比如我們的52ABP啟用了SSL全站加密,那麼預設瀏覽器進入的地址是:http://www.52abp.com,我需要將http://www.52abp.com自動跳轉到https://www.52abp.com 的入口中去,不然還是會有沒加密的路徑可以進行訪問。
有了需求我們再來說下需要準備的工具和環境:
- URL ReWrite工具,下載地址:https://www.iis.net/downloads/microsoft/url-rewrite
but,2.1的版本是有bug,我之前被他們坑出翔了。所以有些時候你可能需要2.0的版本。
2.0從哪裡可以下載呢。從Web Platform Installer裡面進行安裝吧。
操作流程
配置URL分為全域性和非全域性,下圖,可以看到URL重寫元件內容。
選擇某一個站點中的URL重寫,我們稱之為單獨的非全域性。
直接選擇IIS的可以配置全域性,所以這裡要依靠你自己的判斷和選擇。
開啟Url重寫工具
在右側點選新增
,然後選擇空白規則
規則命令如下
這個也是網上一大堆教程最神的地方,很多東西都是缺失的,後者不把程式碼帖出來的。。
名稱:Redirect To HTTPS
(這個名字你可以自己改)
模式:(.*)
然後點選忽略大小寫
條件中的邏輯分組處理
首先參考上圖中的邏輯分組資訊。
輸入 | 型別 | 模式 | 是否忽略大小寫 | 備註 |
---|---|---|---|---|
{HTTPS} | 與模式匹配 | ^OFF$ | YES | 此項用來匹配你的請求是HTTPS還是HTTP |
{HTTPS_HOST} | 與模式不匹配 | ^(localhost) | YES | 如果你是本地的localhost 不會重定向到SSL |
這個也是網上一堆複製貼上不寫清楚的地方。
操作重定向
在操作屬性中,重定向的URL:https://{HTTP_HOST}/{R:1}
附加查詢字串
以及重定向型別為303 即可。
總結
其實這些都不難,但是網上很多人寫資料,寫的不清晰也不檢查,導致問了不少問題。
最終效果
額外的內容
本文的原文在 github,如果您發現了錯漏,歡迎參與協同哦~】
協同地址:https://github.com/52ABP/Documents/blob/master/src/articles/IISConfigUrlRewrite.md
我們建立的 52ABP 框架,已經開始有很多小夥伴開始使用了。如果您對這套基於.net core +angular 的前後端分離的框架感興趣的話,歡迎來找我們哦~
傳送門:2019 年起如何開始學習 ABP 框架系列文章-開篇有益
為了方便和大家交流我建立了幾個群,歡迎大家加群交流哦~