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 阅读(75) 评论(2)  编辑 收藏 网摘

  回复  引用    
#1楼 2008-04-29 09:23 | xun [未注册用户]
这两句是什么意思呀?(\d{1,2}).html????
<LookFor>~/Systemhelp(\d{1,2}).html</LookFor>
<SendTo>~/GetHelp.aspx?HelpID=$1</SendTo>
  回复  引用  查看    
#2楼 [楼主]2008-04-29 20:27 | LuckStar      
<lookfor>是地址栏里看到的地址,也就是重写后的地址,<sendto>是真实地址
实际处理数据的就是这个页面,<lookfor>里边是对<sendto>这个真实地址的重写!
这样明白吗?

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索



相关文章:

相关链接: