一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ASP.NET URL雙向改寫的實(shí)現(xiàn)

  我們?cè)谶M(jìn)行Web程序開發(fā)時(shí),為了進(jìn)行搜索引擎優(yōu)化(SEO),往往需要對(duì)web的訪問地址進(jìn)行優(yōu)化,如將http://localhost/Default.ASPx?tab=performance修改為http://localhost/Default_performance.ASPx,后一個(gè)地址能夠更好地被搜索引擎搜索到,從而達(dá)到了搜索引擎優(yōu)化的目的。微軟有一個(gè)開源類庫(kù)URLRewriter可以非常方便地實(shí)現(xiàn)url改寫,通過配置在web.config文件中的映射表將用戶的請(qǐng)求重定向到具體的頁(yè)面中,我在“使用URLRewriter進(jìn)行URL重寫失效”一文中詳細(xì)介紹了如何使用這個(gè)類庫(kù),該類庫(kù)是通過ASP.NET的httpmodules或httphandles來執(zhí)行的,但如果網(wǎng)站的宿主服務(wù)器不支持ASP.NET httpmodules和httphandles,則該功能便失效了,這時(shí)我們可以通過global中的application_beginrequest事件來進(jìn)行url重定向。本文在URLRewriter類庫(kù)的基礎(chǔ)上進(jìn)行了改進(jìn),并給出了一個(gè)相對(duì)完整的解決方案。

  我們的改進(jìn)是建立在URLRewriter的基礎(chǔ)之上的,所以URLRewriter原有的東西只要能用,我們都可以直接拿過來,當(dāng)然,不好的東西要摒棄!

  URLRewriter的映射表是直接寫在web.config文件中的,要讓web.config能識(shí)別映射表,必須在configSections節(jié)中添加section,告訴程序如何正確解析web.config中未被識(shí)別的內(nèi)容,如原URLRewriter就需要在web.config中添加。我覺得這個(gè)方式并不好,首先你需要單獨(dú)去編寫一個(gè)類庫(kù)來解析xml,并在web.config中進(jìn)行配置,我們完全可以省去這一步。url的映射表可以單獨(dú)寫到一個(gè)xml文件中,當(dāng)程序運(yùn)行時(shí)將xml加載到應(yīng)用程序緩存中,并設(shè)置一個(gè)緩存文件依賴項(xiàng),這樣每當(dāng)管理員修改完映射表后就可以馬上生效。

  另外我希望支持url的雙向改寫,即上面提到的兩個(gè)url,當(dāng)用戶輸入第二個(gè)url時(shí)程序會(huì)將請(qǐng)求發(fā)送到第一個(gè)url,但瀏覽器中顯示的url不變;當(dāng)用戶輸入第一個(gè)url時(shí),自動(dòng)跳轉(zhuǎn)到第二個(gè)url,此時(shí)瀏覽器中顯示的是第二個(gè)url,但是請(qǐng)求仍然是第一個(gè)url。聽起來是不是有點(diǎn)繞啊?沒關(guān)系,其實(shí)也很簡(jiǎn)單,基本的需求就是說客戶原來網(wǎng)站中的很多頁(yè)面在訪問時(shí)都帶了很多參數(shù),做url改寫時(shí)都換成新的url了,這時(shí)舊的url仍然可以用,客戶想的就是當(dāng)輸入原來舊的url時(shí)能自動(dòng)跳轉(zhuǎn)到新的url。這個(gè)就是url的雙向改寫!這兩種方式可以分別通過Context.RewritePath()和Context.Response.Redirect()方法來實(shí)現(xiàn),下面我們來看具體的實(shí)現(xiàn)。

  首先是映射表的實(shí)現(xiàn)。我在URLRewriter原有映射表的基礎(chǔ)上做了一點(diǎn)改動(dòng),就是給ReWriterRule添加了一個(gè)IsDirect屬性,該屬性可選,默認(rèn)值為False,當(dāng)值為真時(shí)如果用戶請(qǐng)求的url匹配則會(huì)進(jìn)行跳轉(zhuǎn),否則只是進(jìn)行請(qǐng)求映射。 

xml version="1.0"?>
<ReWriterConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  
<Rules>
    
<ReWriterRule>
      
<LookFor>~/Default_(/w+)/.ASPxLookFor>
      
<SendTo>~/Default.ASPx?tab=$1SendTo>
    
ReWriterRule>
    
<ReWriterRule IsDirect="true">
      
<LookFor>~/Default/.ASPx/?tab=(/w+)LookFor>
      
<SendTo>~/Default_$1.ASPxSendTo>
    
ReWriterRule>
  
Rules>
ReWriterConfig>

NET技術(shù)ASP.NET URL雙向改寫的實(shí)現(xiàn),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品久久网 | 激情综合网五月天 | 亚洲国产精选 | 亚洲欧美94色 | 成人免费看黄网站yyy456 | 成年网站视频在线观看 | 香蕉碰碰人人a久久动漫精品 | 亚洲精品美女久久久aaa | 激情在线小说图片视频区 | 五月婷婷丁香在线观看 | 日本韩国欧美在线 | 久久精品99视频 | 激情亚洲综合网 | 亚洲人成人网毛片在线播放 | 国产精品视频观看 | 午夜看片未满十八勿进 | 成人三级视频 | 黄网站视频观看免费 | 第一页综合 | 丁香婷婷激情 | 中文字幕在线有码 | 国产男人和女人做性全部视频 | 国产一二区视频 | wwwwxxxx欧美| 亚洲欧美成人 | xxx 日本韩国| 午夜看片网址 | 五月天六月婷婷开心激情 | 综合影院 | 国产中文字幕在线视频 | 国产老鸭窝毛片一区二区 | 成人免费福利 | 伊人激情网 | 日韩美女va毛片在线播放 | 四虎永久在线精品免费影视 | 婷婷深爱网 | 国产久热香蕉在线观看 | 欧美人人做人人爽人人喊 | 国产一区二区三区怡红院 | 狠狠做深爱婷婷久久一区 | 91专区在线|