成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

進行URL重寫的技術實現

第26卷第5期2010年5月赤峰學院學報(自然科學版)JournalofChifengUniversity(NaturalScienceEdition)V01.26No.5May2010運用ASP.N

第26卷第5期2010年5月

赤峰學院學報(自然科學版)

JournalofChifengUniversity(NaturalScienceEdition)

V01.26No.5May2010

運用ASP.NET進行URL重寫的技術實現

郭樂明

(浙江農業(yè)商貿職業(yè)學院。浙江紹興312000)

摘要:本文闡述了17RI重寫mRewriting)的處:使URL簡單易記;防止黑客攻擊;滿足搜索引擎需要;提高網站

可移植性;防止盜鏈;使UR_L支持“可刪節(jié)”的需求.本文分析了ASP.NET實現URL重寫的機制。并重點論述了用ASP.NET

進行URL重寫的技術實現.

關鍵詞:ASP.NET;URL

中圖分類號:TP393.092

Rewriting;ISAPI;IlS;H'IT"P

Module;HTI'P

Handler

文獻標識碼:A文章編號:1673-260X(2010)05-00194)2

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

PageRank.

URL重寫的用處

URL重寫,實質上是將網貞真實URL隱藏起來,使用戶通過相應的虛擬URL(Virtual用處:

1.1滿足搜索引擎需要,實現搜索引擎中排名優(yōu)化.目前很多搜索引擎不支持動態(tài)鏈接,無法抓取動態(tài)網頁,尤其是帶“?”查詢參數的網頁,使網站許多信息無法被用戶搜索到.即使搜索引擎支持動態(tài)鏈接,比如Goosle,它抓取動態(tài)網貞的優(yōu)先度也遠遠低于靜態(tài)網頁,這樣就使動態(tài)網貞的排名遠遠落后于靜態(tài)網貞.而URL重寫很大程度上是笄j于將動態(tài)鏈接轉換成靜態(tài)鏈接,這將使得搜索引擎盡可能深地抓取網站子欄目的內容,使網貞在搜索結果中排名靠前.1.2隱藏網貞實現技術,增強網站安全性.如果網頁上帶著像.jsp,.鵲p,.aspx這樣的擴展名,讓人一看就知道網站是用什么技術實現的.但如果將http://servedtest.aspx?id=3重寫成http://server/test/3.him,使黑客無法知曉網頁的實現技術,大大降低了網頁受攻擊的可能性.

1.3提高網站的移植性.由于真實URL含有實現技術語言的后綴信息(如.aspx/.asp/.jsp),當網站改變技術實現語言的時候,需要改動大量的鏈接,比如從.net平臺的.aspx轉成ia-va平臺的.jsp.而且,如果貞面修改了擴展名,那么對于搜索

IIS

URL)訪問網貞資源,以便

克服真實URL的許多不足.具體來講,URL重寫有以下幾點

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

1.5使URL簡單易記,增加URL美感.比如可以把“http://server/Detailaspx?,,ear=2009&month=12&day=3ff’重寫成‘lattpt//server/2009/12/30/”,這樣,用戶可以相當方便地訪問網站.1.6使URL支持“可刪節(jié)”的需求ll-≈.“可刪節(jié)”是一種極其重要的用戶需求,通過URL重寫??梢詫崿F這種需求.比如將上例“htlp://server/2009/12/30/”中的日期刪除,變成“http://艙rver/2009/12/”,能列出2009年12月的內容;繼續(xù)刪除URL中的月份,變成“http:llserverl20091”,能列出2009年的內容等.

2用ASP.NET實現URL重寫的機制

如圖l所示,當IIS(Intemet服務管理器)接收到一個

ASP.NET弓I擎

.aspx

lSAPIE)(ten商0n

Web請求

ISAPI

FjItor

\.

.a鞠

.asp

.90aP

,|aspnet_isapi.dII叫

asp.al|

—I

HTTPM。duIe

1Ir

HTTP二andIer

l將處理結果

l返回客戶端

圖lIIS和ASEN

T處理Web請求

net—isapi.dll

Web請求時,IIS通過ISAPI篩選器(IsAPIFiler)檢查被

ISAPI擴展.然后aspnet_isapi.dll將處理操作傳

請求文件的擴展名以確定如何處理該請求.IIs可以自行處理靜態(tài)資源的請求(如HTML頁面、圖像),或者將請求傳遞到ISAPI1琵(ISAPIExtension).比如asp文件使用asp.dUISAPI擴展.對于ASP.NET文件,IIS會將請求傳給∞P

遞給托管的ASP.NET進程洶pnetJ個.exe),該進程讀取啪一

chine.eonfig和web.config中配置的多個H1TrP模塊(HfllP

Module),用對虛的HTI'P處理器(Hr】腫Handler)處理請

求,并將處理結果(如由ASP.NET網頁生成的HTML代碼)

一19一

萬方數據

,

返回給客戶端.1"2?3l

、

由圖1可見,實現URL重寫的關鍵是ISAPI:ISAPI

Filter和ISAPIExtension,但是,ISAPI的開發(fā)和部署比較困難。在ISAPI

Filter上實現URL重寫難度比較大-由于ASP.

NET引擎與IIS非常相似田,所以可以利用ASP.NET的

HTrI.P

Module或HTI'PHandler實現URL重寫.其中,HTrP

Module實現了類似于ISAPIFilter的功能,HTrPHandler實現了類似予ISAPIExtension的功能.

為了實現URL重寫,ASP.NET需要創(chuàng)建和注冊自定義

HTI'P

Module或HTI'PHandler。以便完成以下操作I-3:

(1)檢查被請求的路徑,以確定URL是否需要重寫.(2)如果URL需要重寫,可以調用System.Web.Http--Context類的RewritePath0方法來重寫路徑.

3如何用ASP.NET實現URL重寫

3.1

為URL重寫指定配置信息.在創(chuàng)建自定義H11'PMod—

uk或H11PHandler之前,必須在machine.config(影響整個Web服務器)或web.config(針對特定的Web應用程序)的configuration/system.web部分設置配置信息閣:

<httpModules>

<add

type=”typel”n,l毗l'le=”namel”,>

<!一type值為HrrI’PModule的程序集(assembly)和

類名稱,而nBfne值提供了友好名稱,可以在Global.聃艤文件中使用此友好名稱來引用H'ITP

Module一>

</httpModulea>

或者:

<httpHandlers>

<add

verb=”verb”path=”pathl“type=”typel”,>

(!一應確保path值中使用的擴展名已從IlS映射到ASP.NET引擎.一>

</httpHandlers>

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

<URLRewriterRules>

<Rule>

<Url>重寫之前的URLf./UrI><Rewrite>重寫后的URL</Rewrite>

</Rule>

<,URLRewfiterRules>

3.3選擇合適的URL重寫時機.由于ASP.NET不同的身份驗證(Authorize)和文件授權方式(Authenticate)會對URL重寫產生影響I--'1。所以應選擇Global.as強文件中合適的事件來執(zhí)行URL重寫.

如果使用Windows身份驗證和文件授權方式,則最好使用H1TPModule進行URL重寫,而且必須南BeginRequest事件或AuthentieateRequest事件執(zhí)行URL重寫.對于窗體(rom-.B)驗證,H’幾甲Module最好是由AuthorizeRequest事件執(zhí)行重寫P?7】

3.4自定義URL重寫方法.以HTYP

Module為例:

public

class

MyURLRewriter{

public

static

void

Pro嗍O

URLRuks

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

一20一

萬方數據

forinti--0;……;i++),,遍歷每個規(guī)則

,,用自定義的Helper.Resolve方法將rules[i].Ud

轉換為相應的目錄

string

URL=…’+Helper.Resolve(roles[i].Url)

+”¥”:

Regexregex=new

Regex(URL'RegexOptions.

IgnoreCase);

if(regexIsMatch(HttpContextCurrentRequestPath))l

string

URLRewrite=//如果找到匹配的規(guī)

則,則進行相應替換

regex.Replace(HttpContext.Current.Request.Path,

rules[i].Rewrite);

||重寫URL

if(URLRewrite.Length>O){

HttpContext.Current.RewritePath

ⅢRL-

Rewrite)',//執(zhí)行URL重寫

break;

})】

……l

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

protectedvoid

Application_BeginRequest(Object

sender,

EventArgs

e)

MyURLRewriter.ProcessO;)

4小結

本文詳細闡述了URL重寫的用處.實現機制和方法.URL重寫之所以能在ASP.NET上實現,關鍵在于能利用ASP.NET的HttpContext類RewritePath0方法來重寫路徑,而無須改動復雜的ISAPI.然而,上述方法只針對一些擴展名的URL重寫,如果要想處理所有文件類型的URL重寫,甚至控制靜態(tài)文件類型,則需要在上述基礎上更為復雜的技術設置.

參考文獻:

【1]JakobNielsen.URL越UI[DB/OL].http:llwww.useit.

com/alertbox/990321.html.

(2)ScottMitchell.Lrg.LRewriting

in

ASP.NET[DB/OL].

http://msdn.microsoft.com/library/default.asp?ufl=/iibrary/en—us/dnaspp/html/uflrewrifmg.asp.

[3)MicheleLerouxBmtamante.1mideIIS&ASP.NET[DB/

oL】.http://www.theservemde.net/articles/showartide.tss?

id=IIS_ASP.

(4]孫亞民.ASP.Net中自定義Http處理及其應用[DB/OL].

http:llwww.uml.org.cn/

C5)Microsoft.http://msdn.microsoR.com/library/[6]Mamoor

AhmedSiddiqui.HTTP

Handlers

and

H11'P

Modules

in

ASP.NET[DB/OL].http://www.15seconds.

com/issue/020417.htm

[7]ILichard

Birkby.URL

Rewriting塒山ASP.NETIDB/OL].

http://www.codeproject.com/aspnet/URLILewriter.asp.

,

運用ASP.NET進行URL重寫的技術實現

作者:

作者單位:

刊名:

英文刊名:

年,卷(期):郭樂明浙江農業(yè)商貿職業(yè)學院,浙江,紹興,312000赤峰學院學報(自然科學版)JOURNAL OF CHIFENG UNIMERSITY2010,26(5)

參考文獻(7條)

1. Jakob Nielsen URL as UI

2. Scott Mitchell URL Rewriting in ASP.NET

3. Michele Leroux Bustamante Inside IIS&ASP.NET

4. 孫亞民 ASP.Net中自定義Http處理及其應用

5. 查看詳情

6. Mansoor Ahmed Siddiqui HTTP Handlers and HTTP Modules in ASP.NET

7. Richard Birkby URL Rewriting with ASP.NET

本文讀者也讀過(10條)

1. 許禮捷. 周立峰. XU Li-jie. ZHOU Li-feng URL重寫技術實現網站偽靜態(tài)[期刊論文]-沙洲職業(yè)工學院學報2010,13(1)

2. 曲俊華. 朱海濤. 趙波 URL重寫技術在動態(tài)網站優(yōu)化中的應用研究[期刊論文]-網絡安全技術與應用2011(9)

3. 高晻. 金玉玲. 劉凡儒 URL重寫技術及在國內外授權訪問系統(tǒng)中的應用研究[期刊論文]-現代情報2008,28(7)

4. 劉蓉. 王國順. 文亮. Liu Rong. WANG Guoshun. WEN Liang 一個基于ASP.NET與Yahoo Web APIs的搜索網站的實現

[期刊論文]-現代圖書情報技術2005(8)

5. 張濤. ZHANG Tao 淺談在.Net平臺下如何設計數據庫操作通用類[期刊論文]-山西科技2010,25(2)

6. 羅芳 使用ADO.NET讀取和寫入XML[期刊論文]-致富時代(下半月)2010(4)

7. 邢曉燕. 楊華. 廖鷹梅. XING Xiao-yan. YANG Hua. LIAO Ying-mei ASP.NET動態(tài)網頁中的數據傳遞技術[期刊論文]-電腦知識與技術2010,06(22)

8. 趙增敏 ASP.NET數據分頁技術的研究[期刊論文]-魅力中國2011(1)

9. 郭清菊 ASP.NET中頁面間傳值方法的實現[期刊論文]-軟件導刊2010,09(7)

10. 董一華 用ASP.NET實現URL重寫[期刊論文]-計算機時代2006(8)

本文鏈接:http://d.g.wanfangdata.com.cn/Periodical_cfxyxb201005009.aspx

標簽: