IIS透過Url Rewrite Module自動導向https

1. 確認URL Rewrite Module是否安裝

若沒看到URL Rewrite圖示,表示未安裝。

1.1. 安裝Web Platform Installer

按右方「取得新的網頁平台元」,會開啟瀏覽器導到Web Platform Installer下載頁,點擊下載安裝。

安裝完成後,可在程式集中找到

1.2. 開啟Web Platform Installer,安裝URL Rewrite Module

右上方搜尋列輸入「url rewrite」,按[Enter]。可在搜尋結果看到URL Rewrite 2.0,選取後點擊右下角「安裝」按鈕,即會安裝此模組至IIS。

2. 建立URL Rewrite規則

2.1. 新建規則 → 空白規則 → 確定

2.2. 編輯輸入規則 - 「比對URL」區塊

  • 名稱(N):自行輸入規則名稱
  • 要求的URL(R):符合模式
  • 使用(S):規則運算式
  • 模式(T):**(.)*

2.3. 編輯輸入規則 - 「條件」區塊

  • 條件輸入(C):**{HTTPS}**
  • 檢查輸入字串是否為:符合模式
  • 模式(T):^OFF$

2.4. 編輯輸入規則 - 「動作」區塊

  • 動作類型(Y):重新導向
  • 重新導向URL:https://{HTTP_HOST}{REQUEST_URI}
  • 重新導向類型:永久(301)

3. web.config

上面在IIS中URL Rewrite Module的操作,等同於在網站web.config中的<system.webServer>加入Rewrite Rules。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="https force redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>