IIS URL Rewrite(URL 重寫)-使用教程


IIS URL Rewrite(URL 重寫)-使用教程

作者:vkvi 來源:千一網絡 (原創) 日期:2011-8-17
 http://www.cftea.com/c/2011/08/9CRXOLMM2EL0F1PO.asp

URL Rewrite 是微軟提供的、用於 IIS 的、免費的 URL 重寫、重定向工具,網址:http://www.iis.net/download/URLRewrite在 IIS 7.5 中,不需要下載了,默認就有,如果沒有,請在角色服務中添加。

URL Rewrite 安裝后,可在 IIS 中配置,也可以直接在 web.config 中寫。本文介紹如何在 IIS 中配置,要 web.config 中手寫的話,可參照 IIS 配置后生成的 web.config 來學習。

本文通過配置一個重定向的規則來拋磚引玉。

進入

打開 IIS,選擇某個站點,進入 URL Rewrite 功能模塊,單擊右邊操作面板的“Add Rule(s)”,選擇 Inbound rules 中的 Blank rule。

Match URL

Match URL 用處不大,為什么呢?因為它實際上是匹配 URL 的 主機名后面那個 / 的后面部分(不包含 /),比如 c/123.htm。

Match URL

我們一般如上圖配置。Requested URL 選擇 Matchs the Pattern,即符合模式的進入后面的判斷;Using 選擇 Wildcards,這個比正則表達式簡單,用 * 代表任意長度的任意字符;Pattern 一般寫 *,即任何 URL 都進入判斷。

Conditions

這個才是重點,它的條件非常豐富,不僅是 URL,還有很多條件可以選擇,比如客戶端 IP。

Condition

如上圖:我這里寫了 Input 是 {HTTP_POST},這個搞個 Web 開發的就很清楚,表示主機;Type 選擇 Matches the Pattern;Pattern 是 www.cftea.com,也就是說當訪問的主機(域名)是 www.cftea.com 時。左上角 Match All 表示要符合列表中的所有條件才行,Match Any 表示只要符合列表中的任何一個條件就行。

這里還有一個比較有用的變量 {URL},表示除開主機名的那部分,比如 /course/csharp/2.aspx,沒有前面的 http://www.cftea.com 部分。注意這是個坑:前面的 URL 不以 / 開頭,這里又以 / 開頭。

Server Variables

Server Variables

這個功能就更強了,同樣,搞過 Web 開發的都知道 Server Variables,像獲取客戶端 IP、User Agent 這些,都可以在這里用。這里就不作介紹了。

Action

前面介紹的都是條件,這里是要真正動作了,就是符合條件了要做什么。

Action Type 選項有很多,最常用的應該是 Rewrite 和 Redirect 吧,Rewrite 就是我們平時所說偽靜態,Redirect 就是重新定位到另一 URL。

Action

如上,{REQUEST_URI} 是原始 URL 中主機名后面的部分,包含 /。我這里只是演示,所以從圖上看,實際上我是定位到當前 URL,都是 www.cftea.com 為主機名。如果用了 * 或正則表達式,還可用變量,比如 {C:1} 表示 Condition 中第二個匹配項。Redirect Type 請參見 301、302、303、307,用哪個? 。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM