亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        運(yùn)用ASP.NET進(jìn)行URL重寫的技術(shù)實(shí)現(xiàn)

        2010-09-01 00:16:56郭樂明
        關(guān)鍵詞:搜索引擎方法

        郭樂明

        (浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院,浙江 紹興 312000)

        運(yùn)用ASP.NET進(jìn)行URL重寫的技術(shù)實(shí)現(xiàn)

        郭樂明

        (浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院,浙江 紹興 312000)

        本文闡述了URL重寫(URL Rewriting)的用處:使URL簡單易記;防止黑客攻擊;滿足搜索引擎需要;提高網(wǎng)站可移植性;防止盜鏈;使URL支持“可刪節(jié)”的需求.本文分析了ASP.NET實(shí)現(xiàn)URL重寫的機(jī)制,并重點(diǎn)論述了用ASP.NET進(jìn)行URL重寫的技術(shù)實(shí)現(xiàn).

        ASP.NET;URL Rewriting;ISAPI;IIS;HTTP Module;HTTP Handler

        1 URL重寫的用處

        URL重寫,實(shí)質(zhì)上是將網(wǎng)頁真實(shí)URL隱藏起來,使用戶通過相應(yīng)的虛擬URL(VirtualURL)訪問網(wǎng)頁資源,以便克服真實(shí)URL的許多不足.具體來講,URL重寫有以下幾點(diǎn)用處:

        1.1 滿足搜索引擎需要,實(shí)現(xiàn)搜索引擎中排名優(yōu)化.目前很多搜索引擎不支持動(dòng)態(tài)鏈接,無法抓取動(dòng)態(tài)網(wǎng)頁,尤其是帶“?”查詢參數(shù)的網(wǎng)頁,使網(wǎng)站許多信息無法被用戶搜索到.即使搜索引擎支持動(dòng)態(tài)鏈接,比如Google,它抓取動(dòng)態(tài)網(wǎng)頁的優(yōu)先度也遠(yuǎn)遠(yuǎn)低于靜態(tài)網(wǎng)頁,這樣就使動(dòng)態(tài)網(wǎng)頁的排名遠(yuǎn)遠(yuǎn)落后于靜態(tài)網(wǎng)頁.而URL重寫很大程度上是用于將動(dòng)態(tài)鏈接轉(zhuǎn)換成靜態(tài)鏈接,這將使得搜索引擎盡可能深地抓取網(wǎng)站子欄目的內(nèi)容,使網(wǎng)頁在搜索結(jié)果中排名靠前.

        1.2 隱藏網(wǎng)頁實(shí)現(xiàn)技術(shù),增強(qiáng)網(wǎng)站安全性.如果網(wǎng)頁上帶著像.jsp/.asp/.aspx這樣的擴(kuò)展名,讓人一看就知道網(wǎng)站是用什么技術(shù)實(shí)現(xiàn)的.但如果將http://server/test.aspx?id=3重寫成http://server/test/3.htm,使黑客無法知曉網(wǎng)頁的實(shí)現(xiàn)技術(shù),大大降低了網(wǎng)頁受攻擊的可能性.

        1.3 提高網(wǎng)站的移植性.由于真實(shí)URL含有實(shí)現(xiàn)技術(shù)語言的后綴信息(如.aspx/.asp/.jsp),當(dāng)網(wǎng)站改變技術(shù)實(shí)現(xiàn)語言的時(shí)候,需要改動(dòng)大量的鏈接,比如從.net平臺(tái)的.aspx轉(zhuǎn)成java平臺(tái)的.jsp.而且,如果頁面修改了擴(kuò)展名,那么對(duì)于搜索

        引擎而言就是一個(gè)新頁面,它原先在搜索引擎中的PageR-ank也會(huì)隨之消失,從頭開始排名.如果用URL重寫技術(shù)隱藏技術(shù)實(shí)現(xiàn)細(xì)節(jié),修改移植就會(huì)很方便,而且完全不損失PageRank.

        1.4 防止盜鏈.所謂盜鏈,是指盜用其他網(wǎng)站上相應(yīng)資源的URL鏈接為自己網(wǎng)站所用.比如將別人網(wǎng)站上的圖片或聲音的URL寫入自己的網(wǎng)頁代碼,使用戶在訪問網(wǎng)站時(shí),能直接獲得被盜用網(wǎng)站的資源.如果一個(gè)網(wǎng)站的資源經(jīng)常被其他網(wǎng)站盜鏈,那么網(wǎng)站的性能將會(huì)大大下降.而如果將真實(shí)URL重寫成虛擬URL,甚至附帶強(qiáng)大的站外鏈接過濾功能,就可以防止盜鏈.

        1.5 使URL簡單易記,增加URL美感.比如可以把“http: //server/Detail.aspx?year=2009&month=12&day=30”重寫成“http: //server/2009/12/30/”,這樣,用戶可以相當(dāng)方便地訪問網(wǎng)站.

        1.6 使URL支持“可刪節(jié)”的需求[1,2].“可刪節(jié)”是一種極其重要的用戶需求,通過URL重寫,可以實(shí)現(xiàn)這種需求.比如將上例“http://server/2009/12/30/”中的日期刪除,變成“http: //server/2009/12/”,能列出2009年12月的內(nèi)容;繼續(xù)刪除URL中的月份,變成“http://server/2009/”,能列出2009年的內(nèi)容等.

        2 用ASP.NET實(shí)現(xiàn)URL重寫的機(jī)制

        如圖1所示,當(dāng)IIS(Internet服務(wù)管理器)接收到一個(gè)Web請求時(shí),IIS 通過ISAPI篩選器(ISAPI Filter)檢查被請求文件的擴(kuò)展名以確定如何處理該請求.IIS可以自行處理靜態(tài)資源的請求(如HTML頁面、圖像),或者將請求傳遞到ISAPI擴(kuò)展(ISAPIExtension).比如asp文件使用asp.dll ISAPI擴(kuò)展.對(duì)于ASP.NET文件,IIS會(huì)將請求傳給aspnet_isapi.dll ISAPI擴(kuò)展.然后aspnet_isapi.dll將處理操作傳遞給托管的ASP.NET進(jìn)程(aspnet_wp.exe),該進(jìn)程讀取machine.config和web.config中配置的多個(gè)HTTP模塊(HTTP Module),用對(duì)應(yīng)的HTTP處理器(HTTP Handler)處理請求,并將處理結(jié)果(如由ASP.NET網(wǎng)頁生成的HTML代碼)返回給客戶端.[2,3]

        由圖1可見,實(shí)現(xiàn)URL重寫的關(guān)鍵是ISAPI:ISAPI Filter和ISAPI Extension,但是,ISAPI的開發(fā)和部署比較困難,在ISAPIFilter上實(shí)現(xiàn)URL重寫難度比較大.由于ASP. NET引擎與IIS非常相似[2],所以可以利用ASP.NET的HTTP Module或HTTP Handler實(shí)現(xiàn)URL重寫.其中,HTTP Module實(shí)現(xiàn)了類似于ISAPI Filter的功能,HTTP Handler實(shí)現(xiàn)了類似于ISAPI Extension的功能.

        為了實(shí)現(xiàn)URL重寫,ASP.NET需要?jiǎng)?chuàng)建和注冊自定義HTTP Module或HTTP Handler,以便完成以下操作[2]:

        (1)檢查被請求的路徑,以確定URL是否需要重寫.

        (2)如果URL需要重寫,可以調(diào)用System.Web.Http-Context類的RewritePath()方法來重寫路徑.

        3 如何用ASP.NET實(shí)現(xiàn)URL重寫

        3.1 為URL重寫指定配置信息.在創(chuàng)建自定義HTTP Module或HTTP Handler之前,必須在machine.config(影響整個(gè)Web服務(wù)器)或web.config(針對(duì)特定的Web應(yīng)用程序)的configuration/system.web 部分設(shè)置配置信息[5]:

        或者:

        3.2 編寫URL重寫規(guī)則.為了能使URL正確被重寫,需要在web.config或其他文件中編寫URL重寫規(guī)則,以便確定需要重寫的URL地址和URL轉(zhuǎn)發(fā)的地址.一般使用可以序列化(Serializable)的結(jié)構(gòu):

        3.3 選擇合適的URL重寫時(shí)機(jī).由于ASP.NET不同的身份驗(yàn)證(Authorize)和文件授權(quán)方式(Authenticate)會(huì)對(duì)URL重寫產(chǎn)生影響[2],所以應(yīng)選擇Global.asax文件中合適的事件來執(zhí)行URL重寫.

        如果使用Windows身份驗(yàn)證和文件授權(quán)方式,則最好使用HTTP Module進(jìn)行URL重寫,而且必須由BeginRequest事件或AuthenticateRequest事件執(zhí)行URL重寫.對(duì)于窗體(Forms)驗(yàn)證,HTTP Module最好是由AuthorizeRequest事件執(zhí)行重寫.[2,7]

        3.4 自定義URL重寫方法.以HTTP Module為例:

        URLRules rules=…… //用自定義的URLRules類獲得3.2節(jié)的URL重寫規(guī)則

        //用自定義的Helper.Resolve方法將rules[i].Url轉(zhuǎn)換為相應(yīng)的目錄

        則,則進(jìn)行相應(yīng)替換

        3.5 在Global.asax相應(yīng)事件中執(zhí)行自定義的URL重寫方法.例如:

        4 小結(jié)

        本文詳細(xì)闡述了URL重寫的用處.實(shí)現(xiàn)機(jī)制和方法. URL重寫之所以能在ASP.NET上實(shí)現(xiàn),關(guān)鍵在于能利用ASP.NET的HttpContext類RewritePath()方法來重寫路徑,而無須改動(dòng)復(fù)雜的ISAPI.然而,上述方法只針對(duì)一些擴(kuò)展名的URL重寫,如果要想處理所有文件類型的URL重寫,甚至控制靜態(tài)文件類型,則需要在上述基礎(chǔ)上更為復(fù)雜的技術(shù)設(shè)置.

        〔1〕Jakob Nielsen.URL asUI[DB/OL].http://www.useit. com/alertbox/990321.html.

        〔2〕Scott Mitchell.URL Rewriting in ASP.NET[DB/OL].http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnaspp/html/urlrewriting.asp.

        〔3〕Michele Leroux Bustamante.Inside IIS&ASP.NET[DB/ OL].http://www.theserverside.net/articles/showarticle.tss? id=IIS_ASP.

        〔4〕孫亞民.ASP.Net中自定義Http處理及其應(yīng)用[DB/OL]. http://www.uml.org.cn/

        〔5〕Microsoft.http://msdn.microsoft.com/library/

        〔6〕Mansoor Ahmed Siddiqui.HTTP Handlers and HTTP Modulesin ASP.NET[DB/OL].http://www.15seconds. com/issue/020417.htm

        〔7〕Richard Birkby.URL Rewriting with ASP.NET[DB/OL].http://www.codeproject.com/aspnet/URLRewriter.asp.

        TP393.092

        A

        1673-260X(2010)05-0019-02

        猜你喜歡
        搜索引擎方法
        學(xué)習(xí)方法
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        網(wǎng)絡(luò)搜索引擎亟待規(guī)范
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        捕魚
        Nutch搜索引擎在網(wǎng)絡(luò)輿情管控中的應(yīng)用
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        廣告主與搜索引擎的雙向博弈分析
        97久久综合区小说区图片区| 亚洲免费视频一区二区三区 | 精品久久久久久国产| 亚洲大尺度动作在线观看一区| 最近中文字幕精品在线| 97人人模人人爽人人喊网| 亚洲日本va午夜在线电影| 国产成人精品麻豆| 开心五月激情五月天天五月五月天| 国产成人精品优优av| 亚洲色欲色欲www在线播放| 国产激情无码Av毛片久久| 国产免费网站在线观看不卡| 久久精品无码一区二区日韩av| 无遮高潮国产免费观看| 无码天堂在线视频| 日本国产精品久久一线| 色妞ww精品视频7777| jjzz日本护士| 国产成人高清视频在线观看免费| 欧美老妇交乱视频在线观看| 日日噜噜夜夜爽爽| 久久久精品国产亚洲麻色欲 | 亚洲av无码电影网| 国产精品无套粉嫩白浆在线| 刚出嫁新婚少妇很紧很爽| 国产又色又爽又刺激在线播放| 久久av无码精品人妻糸列| 日韩三级一区二区三区四区| 亚洲av无码乱码国产一区二区| 天堂√最新版中文在线天堂| 岛国av一区二区三区| 国产一级内射视频在线观看| 少女高清影视在线观看动漫| 成激情人妻视频| 日本精品免费看99久久| 欧美黑人性暴力猛交喷水黑人巨大| 亚洲国产香蕉视频欧美 | 精品无人区无码乱码毛片国产 | 特级毛片a级毛片在线播放www| 视频一区二区三区中文字幕狠狠 |