IIS 實現http重定向https(親測有效:解決URL重寫模組配置https重定向不生效的問題)
- 2022 年 9 月 7 日
- 筆記
前言
以前部署網站的時候,都是通過程式碼來實現http重定向https,最近在部署個人網站的時候,突發奇想可不可通過IIS來實現無程式碼的重定向呢?
在一番操作猛如虎的搜索引擎操作後,發現只有google瀏覽器能實現重定向,在反覆對照網路教程後陷入了深深的自我懷疑。最後不得已只能一步一步來解析到底哪個地方出現了問題,現在將我重定向的步驟分享給大家。
實際操作
(一)下載IIS的「URL重寫」插件
提示:這個插件只支援 IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10
第一種安裝:通過IIS中的「Web平台安裝程式」。
注意:如果IIS中沒有這個安裝程式,就只能採用第二種安裝方式了。
首先:點擊IIS的左側主頁,進入主頁功能視圖後再點擊「Web平台安裝程式」
接下來:進入「Web平台安裝程式」後,先點擊「產品」標籤,然後在搜索框中輸入「url」回車進行搜索
最後:在搜索結果中就能看見「URL重寫工具」安裝包了,點擊安裝就可以了(因為我已經安裝過了就顯示的「已安裝」)
第二種安裝:通過微軟官網進行下載
microsoft url-rewrite鏈接地址://www.iis.net/downloads/microsoft/url-rewrite
(二)進行配置
通過上述安裝步驟,如果安裝成功,就能在主頁功能視圖中看見「URL重寫」功能模組了。
第一步:進入功能介面後,點擊右側的「添加規則」
第二步:在彈出的對話框中,點擊「空白規則」
第三步:進入入站規則編輯頁面
1、名稱部分
隨意填寫(我這兒因為是已經應用的規則,所以輸入框是灰色的,新建的時候是白色的可以輸入的)
2、匹配URL部分進行如下操作
序號 | 輸入位置 | 輸入內容 |
---|---|---|
1 | 請求的URL | 選擇「與模式匹配」 |
2 | 使用 | 選擇「正則表達式」 |
3 | 模式 | 輸入「^((https |
4 | 忽略大小寫勾選框 | 勾上 |
3、條件部分的邏輯分組:選擇「全部匹配」,選中後點擊「添加」按鈕,然後在彈出的對話框中進行如下操作
序號 | 輸入位置 | 輸入內容 |
---|---|---|
1 | 條件輸入 | 輸入「{HTTPS} 」 |
2 | 檢查輸入字元串是否 | 選擇「與模式匹配」 |
3 | 模式 | 輸入「^OFF$」 |
3 | 忽略大小寫勾選框 | 勾上 |
備註:這個條件的作用是為了屏蔽已經帶有https的鏈接再進行重定向。
提示:在匹配URL部分操作完成後可以點擊「測試模式」按鈕,在彈出的對話框中的「要測試的輸入數據」位置輸入「//www.test.org/first/second?one=text」或者其他任意你想測試的網址,就能看見我們剛輸入的正則表達式將網址如何進行了拆分。其中的{R:3}就是我們希望獲取的部分。
4、操作部分的邏輯分組:選擇「全部匹配」,選中後點擊「添加」按鈕,然後在彈出的對話框中進行如下操作
序號 | 輸入位置 | 輸入內容 | 備註 |
---|---|---|---|
1 | 操作類型 | 選擇「重定向」 | |
2 | 操作屬性-重定向URL | 輸入「//{HTTP_HOST}/{R:3}」 | 特別提醒:{R:3}就是從匹配URL部分的正則表達式來的 |
3 | 操作屬性-附加查詢字元串勾選框 | 勾上 | |
4 | 操作屬性-重定向類型 | 選擇「永久(301)」 | 如果沒有其他考量,建議http重定向https這種需求選擇永久 |
(三)確認後應用配置的規則
在上述操作完成後,點擊右側「應用」,然後進入瀏覽器輸入http測試就能看到重定向的效果了(提前安裝SSL證書哦_)。
寫在最後
一開始是想跟著網上的教程抄,省事兒。沒想到最後還是要自己一步一步來學著如何配置。
如果有小夥伴跟著以上內容進行配置後(且清除了瀏覽器快取)仍舊存在不生效的情況,可以在評論區留言。