程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Asp.net URL重寫(URLRewriter)。

Asp.net URL重寫(URLRewriter)。

編輯:.NET實例教程

可以使用 ISAPI 篩選器在 IIS Web 服務器級別實現 URL 重寫,也可以使用 HTTP 模塊或 HTTP 處理程序在 ASP.Net 級別實現 URL 重寫。
在dotnet中如果實現URLRewriter只需做如下幾步:

第一步:添加dll引用 URLRewriter.dll

第二步:在web.config文件中進行配置


先加入一個section節


<configuration>
    .......
  <configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
  </configSections>


然後加入一個模塊httpMoudles,

為 URL 重寫引擎指定配置信息



<system.web>
。。。。。
<httpModules>
      <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
    </httpModules>


注意節的位置 


<system.web>與<configSections>兩個節是平級的


再加入規則


<RewriterConfig>
      <Rules>
        <!-- Rules for Blog Content Displayer -->
        <RewriterRule>
          <LookFor>/ctrl/(.*).ashx</LookFor>
          <SendTo>/ControlContainer.ASPx?control=/ctrl/$1.ascx</SendTo>
        </RewriterRule>
        <RewriterRule>
          <LookFor>ctrl/(.*).ashx</LookFor>
          <SendTo>/ControlContainer.ASPx?control=ctrl/$1.ascx</SendTo>
        </RewriterRule>
      </Rules>
    </RewriterConfig>

這個節與<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> 元素中指定模式時,請注意,要使用正則表達式來執行匹配和字符串替換。(稍後,我們將介紹一個真實的示例,說明如何使用正則表達式來搜索模式。)由於模式是正則表達式,應確保轉義正則表達式中的任何保留字符。(一些正則表達式保留字符包括:.、?、^、$ 及其他。可以通過在前面加反斜槓(如 \.)對這些字符進行轉義,以匹配文字句點。)  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved