asp.net url Rewriting總結

所謂url Rewriting並不是真的生成一個靜態的網頁,而只是一種偽靜態而已,在地址欄上看到的是一個靜態的地址而已,當客戶端發生一個請求給服務器時,服務器會根據其參數判斷是否需要isapi的處理,如果需要將發給isapi處理,asp中的是asp.dll,asp.net是aspnet_isapi.dll,他們處理後將結果反給IIS,再由IIS返回客戶端由客戶端的瀏覽器執行,在發出請求和得到結果這一段時間,可以對地址進行重寫以達到偽靜態的效果。
1.在項目bin目錄下包含一下URLRewriter.dll文件。
2.在web.config文件中設置
    a:在最開始加上
    <configSections>
  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
  b.添加地址重寫
<RewriterConfig>
  <Rules>
    <RewriterRule>
      <LookFor>~/index.htm</LookFor>
      <SendTo>~/default.aspx</SendTo>
    </RewriterRule>
    <RewriterRule>
      <LookFor>~/Systemhelp(\d{1,2}).html</LookFor>
      <SendTo>~/GetHelp.aspx?HelpID=$1</SendTo>
    </RewriterRule>
    <RewriterRule>
      <LookFor>~/NewsInfo(\d{1,8}).html</LookFor>
      <SendTo>~/ShowNews.aspx?NewsID=$1</SendTo>
    </RewriterRule>
  </Rules>
</RewriterConfig>

3.在system.web下添加
<httpModules>
      <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
    </httpModules>

這樣就OK了,比如上邊NewsInfo1.html他其實的真實頁面是ShowNews.aspx?NewsID=1.只不過在地址欄中看到是一個靜態地址而已!
posted @ 2008-03-16 22:12  LuckStar  阅读(316)  评论(2编辑  收藏  举报