Microsoft URL Rewrite Module 是微軟推出的asp.net url重寫模塊,僅支持IIS7,要在IIS6上進行 url重寫,可以采用一些第三方的模塊,比如 urlrewriting.net。首先去下載Rewrite Module並安裝。安 裝完畢後,在IIS管理工具中就會出現Url Rewrite圖標。
雙擊你需要進行URL重寫的網站或者虛擬目錄的URL Rewrite按鈕,可以進行規則的編輯。微軟的重寫 模塊非常強大,有很多功能,還可以自己寫程序對其進行擴展。本文僅介紹最常用和實用的利用正則表達 式進行重寫。重寫的基本原理是當服務器接收到一個請求的時候,利用正則表達式匹配當前輸入的url, 然後根據一個規則將這個url轉換為實際的url。例如,我們要把 localhost/Game/game.aspx? ID=SomeName轉換為 localhost/SomeName/,也就是每個游戲名都作為一個獨立的目錄。於是,我們要匹配 輸入的url的格式是 ([^/?]*)/$,這個正則表達式不包括根目錄,例如localhost/,它的含義是所有非/和 ?的字符,並且以/結尾,按照我們的要求,它的實際地址是~/Game/game.aspx,參數是正則表達式中第一 個圓括號匹配到的內容。實際的url中會用到這個正則表達式的反向引用。反向引用的格式是 {R:n},其 中n是一個整數。n等於0的時候是整個正則表達式,n大於0的時候是從左往右數第n個捕獲組的值。在這裡 個例子中,我們的實際url就是 Game/Game.aspx?ID={R:1}。對於正則表達式的反向引用不太熟悉的人, 微軟也提供了一個很方便的功能,Test Pattern