可以使用 ISAPI 篩選器在 IIS Web 服務器級別實現 URL 重寫,也可以使用 HTTP 模塊或 HTTP 處理程序在 ASP.Net 級別實現 URL 重寫。
在dotnet中如果實現URLRewriter只需做如下幾步:
第一步:添加dll引用 URLRewriter.dll
第二步:在web.config文件中進行配置
先加入一個section節
然後加入一個模塊httpMoudles,
注意節的位置
再加入規則
這個節與<system.web>平級
注意sendto節中的路徑這塊設置不好,會報404錯誤的!
這裡的意思是凡是從路徑http://.../ctrl/111.ashx來的請求都由/ControlContainer.ASPx?control=/ctrl/111.ascx來處理
除了指定使用 HTTP 模塊還是 HTTP 處理程序執行重寫外,Web.config 文件還包含重寫規則:重寫規則由兩個字符串組成:要在被請求的 URL 中查找的模式;要替換此模式的字符串(如果找到)。在 Web.config 文件中,此信息是使用以下語法表達的:
<RewriterConfig><Rules><RewriterRule><LookFor>要查找的模式</LookFor><SendTo>要用來替換模式的字符串</SendTo></RewriterRule><RewriterRule><LookFor>要查找的模式</LookFor><SendTo>要用來替換模式的字符串</SendTo></RewriterRule>...</Rules></RewriterConfig>
每個重寫規則均由 <RewriterRule> 元素表達。要搜索的模式由 <LookFor> 元素指定,而要替換所找到的模式的字符串將在 <SentTo> 元素中輸入。這些重寫規則將從頭到尾進行計算。如果發現與某個規則匹配,URL 將被重寫,並且對重寫規則的搜索將會終止。
在 <LookFor> 元素中指定模式時,請注意,要使用正則表達式來執行匹配和字符串替換。(稍後,我們將介紹一個真實的示例,說明如何使用正則表達式來搜索模式。)由於模式是正則表達式,應確保轉義正則表達式中的任何保留字符。(一些正則表達式保留字符包括:.、?、^、$ 及其他。可以通過在前面加反斜槓(如 \.)對這些字符進行轉義,以匹配文字句點。)