自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET的URL Rewrite組件

開發(fā) 后端
本文介紹ASP.NET級(jí)別的URL Rewrite組件的原理很簡單,其實(shí)只是監(jiān)聽BeginRequest事件,并且根據(jù)配置來決定目標(biāo)URL。

可能已經(jīng)沒有人會(huì)使用上一篇ASP.NET文章中的方法進(jìn)行URL Rewrite了,因?yàn)樘峁︰RL Rewrite組件早已鋪天蓋地了。

ASP.NET級(jí)別的URL Rewrite組件的原理很簡單,其實(shí)只是監(jiān)聽BeginRequest事件,并且根據(jù)配置來決定目標(biāo)URL。在我之前接觸過的項(xiàng)目中,發(fā)現(xiàn)使用URLRewriter作為URL Rewrite組件的頻率非常高,我想可能是因?yàn)槟鞘俏④浱峁┑臇|西吧。

如果要使用URLRewriter,首先自然就是在web.config中配置一個(gè)HttpModule:

  1. <httpModules> 
  2. <add name="ModuleRewriter" type="URLRewriter.ModuleRewriter, URLRewriter" /> 
  3. </httpModules> 
  4.  


然后就是進(jìn)行配置了(注:強(qiáng)烈建議使用configPath屬性將配置提取成額外的文件,便于管理):

  1. <configSections> 
  2. <section name="RewriterConfig" 
  3. type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> 
  4. </configSections> 
  5. <RewriterConfig> 
  6. <Rules> 
  7. <RewriterRule> 
  8. <LookFor>~/tag/([\w]+)/</LookFor> 
  9. <SendTo>~/Tags.aspx?Tag=$1</SendTo> 
  10. </RewriterRule> 
  11. </Rules> 
  12. </RewriterConfig> 

正則表達(dá)式是一個(gè)非常了不得的東西,能匹配,能捕獲。在上面的例子中,我們把符合LookFor條件的“/tag/xxx”重新定位到 Tags.aspx頁面上,并且將xxx作為Tag這個(gè)QueryString項(xiàng)的值,這樣就能夠在代碼中通過 HttpContext.Request.QueryString["Tag"]來獲得該值了。

URL Rewriter的功能對(duì)于大多數(shù)應(yīng)用來說已經(jīng)足夠了,但是我總是不喜歡。但如果非要問我不喜歡的原因,我也難說出個(gè)子丑寅卯來??赡軆H僅是這個(gè)配置方式的問題吧。在使用 URL Rewriter時(shí),配置段往往會(huì)非常長,每個(gè)配置項(xiàng)需要從<RewriterRule>到</RewriterRule>共4 行代碼,一個(gè)規(guī)模不大的項(xiàng)目都很容易出現(xiàn)上百行的配置?!斑@也太XML了”,我想,為什么不用XML Attribute呢?這樣每個(gè)配置項(xiàng)就能縮短為1行了——不過,這是ASP.NET題外話。

所以如果我目前要做URL Rewrite,往往用的是Intelligencia出品的開源組件Url Rewriter.NET。雖然這個(gè)名字和前一個(gè)非常相似,但是功能卻遠(yuǎn)超前者。該組件在使用上和URL Rewriter比較接近(其實(shí)似乎所有的URL Rewrite組件都差不多),我們要做的也只是配置:

  1. <configSections> 
  2. <section name="rewriter" 
  3. type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,  
  4. Intelligencia.UrlRewriter" /> 
  5. </configSections> 
  6. <rewriter> 
  7. <rewrite url="^/User/(\d+)$" to="~/User.aspx?id=$1" processing="stop" /> 
  8. <rewrite url="^/User/(\w+)$" to="~/User.aspx?name=$1" processing="stop" /> 
  9. </rewriter> 
  10. <system.web> 
  11. <httpModules> 
  12. <add name="UrlRewriter" 
  13. type="Intelligencia.UrlRewriter.RewriterHttpModule,  
  14. Intelligencia.UrlRewriter" /> 
  15. </httpModules> 
  16. </system.web> 

【編輯推薦】

  1. XML和ASP.NET
  2. ASP.NET中Java script中調(diào)用c#方法
  3. ASP.NET整個(gè)Postback程序處理的過程
  4. ASP.NET服務(wù)器端控件CheckBoxList
  5. 淺析ASP.NET的Membership
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-07-22 14:23:39

URL RewriteASP.NET

2009-01-04 13:27:10

URL RewriteIISASP.NET

2009-09-24 09:26:22

ASP.NET MVC

2009-07-31 09:58:20

URL映射ASP.NET

2009-08-05 13:16:43

ASP.NET URL

2009-07-31 09:39:59

ASP.NET和URL

2009-08-05 14:46:17

ASP.NET url

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-23 16:28:20

URL映射ASP.NET 2.0

2009-08-05 16:53:14

ASP.NET組件設(shè)計(jì)

2009-08-10 10:19:47

ASP.NET組件設(shè)計(jì)

2009-08-10 14:08:15

ASP.NET服務(wù)器控ASP.NET組件設(shè)計(jì)

2009-07-22 17:45:35

ASP.NET教程

2009-07-31 13:06:53

CheckBoxLisASP.NET頁面

2009-10-26 15:55:43

URL Routing

2009-08-10 15:42:33

ASP.NET Che

2009-08-10 16:07:44

ASP.NET Lin

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-12-30 14:28:09

ASP.NET Web
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)