国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

(轉)ASP.net的url重寫

2019-11-15 02:26:36
字體:
來源:轉載
供稿:網友

(轉)asp.net的url重寫

1.

有關于URL的重寫,本文也只是拿來主意。相繼有MS的組件“URLRewriter”和在Global.asax里的“application_BeginRequest()”編碼方式,以及IIS里的ISAPI設置。娜列下來,實現方法也都很簡單。方法一:MS組件這里也不用詳解了,相關請看:http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx用法很簡單,只需要把組件URLRewriter.dll拷到應用程序的bin目錄下,然后在web.config下加入如下代碼:在<configuration></configuration>中加入:<configSections> <sectionname="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/></configSections><RewriterConfig> <Rules> <RewriterRule> <LookFor>~/(/d{4})/(/d{2})/Default/.aspx</LookFor> <SendTo>~/Default.aspx?ID=$1</SendTo> </RewriterRule> </Rules></RewriterConfig>

然后在<system.web></system.web>中加入:

<httpHandlers><addverb="*"path="*.aspx"type="URLRewriter.RewriterFactoryHandler, URLRewriter"/></httpHandlers>最后在地址欄上鍵入:http://localhost/Test/2004/12/News.aspx效果出來了。上面的<LookFor>~/(/d{4})/(/d{2})/News/.aspx</LookFor>這句這正則表達式URL,即被重寫的URL,而<SendTo>~/Default.aspx?ID=$1</SendTo>這一句為原始URL地址。其中的$1為第一個正則表達式值(上面例子為:2004),以此類推,第二個即為$2方法二:Application_BeginRequest()在應用程序中新建一個xml文件,文件內容為:文件名ReWriter.config<?xmlversion="1.0"encoding="utf-8"?><ReWriterUrls><rule> <old>(.*)/News/(/d{4})/Default/.aspx</old> <new>../../Default.aspx?id=$2&amp;type=$3</new></rule></ReWriterUrls>在Global.asax文件中的Application_BeginRequest(Object sender, EventArgs e)加入代碼: try { stringpath=Server.MapPath("~/ReWriter.config"); XPathDocument myXPathDocument =newXPathDocument(path); XPathNavigator myXPathNavigator = myXPathDocument.CreateNavigator(); XPathNodeIterator myXPathNodeIterator =myXPathNavigator.Select ("http://rule"); System.Text.RegularExPRessions.Regex oReg; stringReWriteUrl; while(myXPathNodeIterator.MoveNext()) { //oReg=new Regex(oNode.SelectSingleNode("url/text()").Value); XPathNavigator nav2 = myXPathNodeIterator.Current.Clone(); stringoldString="",newString=""; XPathNodeIterator it2 = nav2.Select("old"); while(it2.MoveNext()) { oldString = it2.Current.Value; break; } it2 = nav2.Select("new"); while(it2.MoveNext()) { newString = it2.Current.Value; break; } if(oldString != "" &&newString != "") { oReg =newSystem.Text.RegularExpressions.Regex(oldString); if(oReg.IsMatch(Request.Url.ToString())) { ReWriteUrl = oReg.Replace(Request.Url.ToString(),newString); HttpContext.Current.RewritePath(ReWriteUrl); break; } } } } catch { }最后在地址欄上鍵入:http://localhost/Test/News/2004/Default.aspx效果出來了。

2

Asp.net 用url重寫(URLReWriter)實現任意二級域名

好久沒有寫技術文章,如果大家看不明白,就多看幾篇,汗,或者,在文章的后面回復(這是最有效的辦法),我會盡力幫助大家解答疑惑.

來找這篇文章的,應該都知道什么叫二級域名吧,廢話就不說了.但是討論前,先要明白一個思想問題.很多朋友一直考慮不清(我前幾天也一直搞不明白)的問題是,我鍵入一個地址后,怎么這個url就被重寫了?第一步:在瀏覽器鍵入了一個地址,比如http://love.kerry.com,點回車后,都發生了什么?為了把問題簡單化,我來這樣解釋:第二步:首先,鍵入的地址被解析,最終來到了一臺web服務器.交給IIS處理.在.net的世界中,IIS會把這樣的請求再交給一個web處理器 處理,最后,該 web處理器 把處理的結果返回給瀏覽器,顯示給用戶看.請不用忽略這樣一個問題,第二步的所有事情都是在服務器端做的.在這些事情進行的時候,用戶端的瀏覽器上面的地址不會改變.即使最后 web處理器 把處理結果返回來的時候,上面的地址也不會改變.一開始鍵入的url,只是起一個敲門的作用,門敲完了,作用就算結束了,只有你的眼睛可以看到那個地址,瀏覽器,服務器等都不知道這個地址.然后要明白的問題是,所謂url重寫,也只是web開發人員知道的內幕情況,用戶根本不知道發生了什么,他認為自己鍵入的地址就是應該出來屏幕上顯示的結果.也就是說,我們在幕后控制要顯示的內容.接下來要考慮的是,怎么樣控制顯示的內容?從上面說的過程,很明顯要在 web處理器 的工作這一步動手腳.

一個最簡單的考慮是,用戶敲入了一個簡單的不帶任何參數地址,http://love.kerry.com然后我們把這個地址改成一個符合程序需要的帶參數的地址,http://kerry.com?lover=notus,最后處理之.所謂的url重寫,就是在這一步.用.net的術語來說,我們需要給應用程序注冊一個httpmodule,用來處理特定的url注冊httpmodule,在web.config,處理url,在我們提供的httpmodule程序中

大體相當于這樣的一段程序

//用我們的httpmodule程序截獲原始urlString OriginalUrl=”http://love.kerry.com”;//處理原始url,得到最后需要的url,值為http://kerry.com?lover=notusString FinalUrl=Rewrite(OriginalUrl);// context重新將url在內部發送給IIS處理context.RewritePath(FinalUrl);

接下來,我們來實現url重寫.第一步:確定要對哪些url執行重寫,即制定重寫規則第二步:編寫httpmodule處理程序第三步:將編寫的httpmodule整合入web程序,開始工作.

上面就是url重寫的基本知識,而用url重寫實現二級域名,過程一樣.因為無論是二級域名還是三級域名,都是一個url地址.只要我們截獲這個url地址,就可以在處理的時候動手腳.

這些工作挺麻煩,但是網絡上已經有高人給我們寫了這樣的程序,參看下面的文章:

http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx

http://www.survivalescaperooms.com/jzywh/archive/2005/09/29/246650.html

Word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-wid

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霸州市| 庄浪县| 卢氏县| 湛江市| 疏勒县| 孝感市| 临沧市| 山东| 舟曲县| 永靖县| 克拉玛依市| 文化| 华蓥市| 衡水市| 饶阳县| 获嘉县| 合阳县| 略阳县| 岳阳县| 佛教| 济源市| 壶关县| 饶阳县| 赤壁市| 兴隆县| 庄浪县| 平舆县| 旺苍县| 安远县| 宁城县| 宝鸡市| 连平县| 宜兰市| 龙山县| 新郑市| 鹰潭市| 雅江县| 闽侯县| 神农架林区| 水富县| 陇南市|