四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

  我們?cè)谶M(jìn)行Web程序開發(fā)時(shí),為了進(jìn)行搜索引擎優(yōu)化(SEO),往往需要對(duì)web的訪問(wèn)地址進(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改寫,通過(guò)配置在web.config文件中的映射表將用戶的請(qǐng)求重定向到具體的頁(yè)面中,我在“使用URLRewriter進(jìn)行URL重寫失效”一文中詳細(xì)介紹了如何使用這個(gè)類庫(kù),該類庫(kù)是通過(guò)ASP.NET的httpmodules或httphandles來(lái)執(zhí)行的,但如果網(wǎng)站的宿主服務(wù)器不支持ASP.NET httpmodules和httphandles,則該功能便失效了,這時(shí)我們可以通過(guò)global中的application_beginrequest事件來(lái)進(jìn)行url重定向。本文在URLRewriter類庫(kù)的基礎(chǔ)上進(jìn)行了改進(jìn),并給出了一個(gè)相對(duì)完整的解決方案。

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

  URLRewriter的映射表是直接寫在web.config文件中的,要讓web.config能識(shí)別映射表,必須在configSections節(jié)中添加section,告訴程序如何正確解析web.config中未被識(shí)別的內(nèi)容,如原URLRewriter就需要在web.config中添加。我覺得這個(gè)方式并不好,首先你需要單獨(dú)去編寫一個(gè)類庫(kù)來(lái)解析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。聽起來(lái)是不是有點(diǎn)繞啊?沒(méi)關(guān)系,其實(shí)也很簡(jiǎn)單,基本的需求就是說(shuō)客戶原來(lái)網(wǎng)站中的很多頁(yè)面在訪問(wèn)時(shí)都帶了很多參數(shù),做url改寫時(shí)都換成新的url了,這時(shí)舊的url仍然可以用,客戶想的就是當(dāng)輸入原來(lái)舊的url時(shí)能自動(dòng)跳轉(zhuǎn)到新的url。這個(gè)就是url的雙向改寫!這兩種方式可以分別通過(guò)Context.RewritePath()和Context.Response.Redirect()方法來(lái)實(shí)現(xiàn),下面我們來(lái)看具體的實(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)載需保留來(lái)源!

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

主站蜘蛛池模板: 山海经动画片全40集免费观看| 流行性感冒ppt课件| 回响电视剧在线观看| 雅马哈调音台说明书| 诱惑的艺术| 没有下巴| 无涯:杜琪峰的电影世界 电影 | 十大黄色软件推荐免费| 小崔会客| 画江湖之不良人7 2024| 只园| 色女人在线视频| 林智妍三级全部电影| 凯西·贝茨| 张俪eyely| 韩国电影诱惑| 住院吸氧是一天24小时算钱吗 | 卢靖姗个人资料| 茶馆妈妈韩剧| 一条路千山万水| 鬼娃| 天堂网电影| 高达w| 电影一对一| 邓为个人资料及简历| 意大利人在俄罗斯的奇遇| 以下关于宏病毒说法正确的是| 赖小子| 少年歌行第三季| 电商运营计划| 欧美xxxx做受性欧美蜜臀av| 91自拍网| 澳大利亚《囚犯》| 香蜜沉沉烬如霜吻戏| 唐安| 林正英僵尸大全免费看| 王若涵| 电影土耳其狂欢| 一江春水向东流 电视剧| 吃什么皮肤白的最快| 黛博拉·安沃尔|