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

首頁 > 編程 > .NET > 正文

asp.net用url重寫URLReWriter實現任意二級域名 高級篇

2024-07-10 12:38:22
字體:
來源:轉載
供稿:網友
 我最近寫了個小例子,大家可以先看這個,里面有小例子的完整代碼下載
//www.survivalescaperooms.com/article/20906.htm

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

來找這篇文章的,應該都知道什么叫二級域名吧,廢話就不說了.但是討論前,先要明白一個思想問題.
很多朋友一直考慮不清(我前幾天也一直搞不明白)的問題是,我鍵入一個地址后,怎么這個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程序截獲原始url
String OriginalUrl=” http://love.kerry.com”;
//處理原始url,得到最后需要的url,值為http://kerry.com?lover=notus
String FinalUrl=Rewrite(OriginalUrl);
// context重新將url在內部發送給IIS處理
context.RewritePath(FinalUrl);

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 买车| 巴塘县| 朝阳市| 大方县| 苍南县| 东台市| 长阳| 许昌市| 闽清县| 永兴县| 长宁县| 陇西县| 通辽市| 江都市| 苍溪县| 河西区| 武强县| 襄汾县| 昌黎县| 平罗县| 句容市| 吉林省| 曲沃县| 宁陵县| 宜川县| 金堂县| 台南市| 上饶市| 阳曲县| 永善县| 南投县| 萨迦县| 嘉义县| 防城港市| 徐闻县| 瑞安市| 商丘市| 江永县| 弥勒县| 玉溪市| 景宁|