前言

Url Rewrite Module 是一個透過 .NET 撰寫的 IIS module,他提供正規表示式與萬用字元方式建立規則,提供站台管理員重新生成 URL 與其對應網頁、服務、應用程式..等。這些友善地 URL 可以讓用戶容易記住、搜尋引擎輕鬆建立索引或服務網址保持一致。本篇文章將簡單介紹如何 安裝設定第一個 Url Rewrite Rule,若有任何錯誤或建議,請各位先進不吝提出。



介紹

安裝

Step 1. IIS 安裝時不包含此模組,所以我們透過 Web Platform Installer 安裝 Url rewrite module



Step 2. 依序安裝指引完成安裝,開啟 Web Platform Installer 並在搜尋欄位輸入 url rewrite,選擇後進行安裝。



Step 3. 開啟 IIS 選擇站台或任一網站、應用程式、虛擬資料夾,你可以看見 Url Rewrite





建立第一個 Rewrite Rule

Step 1. 開啟 URL Rewrite,點選右邊加入規則 (Add Rule)



Step 2. URL Rewrite Module 提供許多 Template,您可以自行嘗試不同的 Ruleule。我們點選 Blank rule > 點選 OK



Step 3. Inbound rule 內主要分成幾個設定,包含名稱(Name)、比對 URL (Match URL)、條件 (Condition)、伺服器變數 (Server Variables)、行為 (Action)。我們將逐一簡單說明。



Match URL: 你可以設定 符合/不符合樣式 與 透過正規表式/萬用字元/完全符合方式來設定比對規則。Url Rewrite Module 提供測試功能。



Condition: 除了 URL Match,你可以加入更多可選擇性的條件,像是 Url 中的 QueryString 或 HTTP Header...等,做更細部的規則設定。



Server Variables: 你可以自行設定伺服器變數,或者是取代既有的伺服器變數。



下列是一些既有且常用伺服器變數對應,您可以在 Condition 使用:



下圖是範例:



Action: 當符合規則時所採取的行為。 Action Type 分成 Rewrite (客戶端轉向)、None (不作為)、Redirect (伺服器轉向)、Custom Response (自訂回應), Abort Request (中止)



Step 4. 我們簡單設定一個範例,將 http://localhost/iisstart.htm 自動轉向 http://localhost/hello.htm (一個只顯示 Hello 的簡單網頁)。 我們依序輸入名稱、Match URL與 Action



Step 5. 點選右邊 Apply



Step 6. 開啟 IIS 網站進行測試,輸入網址,可以看見網址被轉向,而透過瀏覽器開發者工具,您可以看見 URL 成功被轉向。

原先網站:iisstart.hml



加入規則後:




參考資料

1. URL Rewrite Module Configuration Reference - Microsoft Docs