來找這篇文章的,應該都知道什么叫二級域名吧,廢話就不說了.但是討論前,先要明白一個思想 " /> 欧美日韩一区视频,色网站视频,超碰免费公开在线

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

asp.net用url重寫URLReWriter實現(xiàn)任意二級域名第1/2頁

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

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

一個最簡單的考慮是,用戶敲入了一個簡單的不帶任何參數(shù)地址, http://love.kerry.com然后我們把這個地址改成一個符合程序需要的帶參數(shù)的地址, 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在內(nèi)部發(fā)送給IIS處理
context.RewritePath(FinalUrl);

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

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

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

http://www.microsoft.com/china/msdn/library/webservices/ASP.NET/URLRewriting.mspx

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

http://www.cnblogs.com/jzywh/archive/2006/02/20/334004.html

文章結束了.

在實施過程中會碰到一些問題,大多是因為看上面的文章不仔細產(chǎn)生的,但是說實話,那么長的文章要看完也不容易.下面我來記錄一些重要的問題.其中最后的兩個問題,用具體的代碼展示了如何處理重寫的目標url以達到我們的要求


為什么非要用泛解析?
看了好多朋友的回復,我想現(xiàn)在可能有這樣的誤解,即,這篇關于url重寫的文章只是給大家介紹一些處理方法.至于泛解析不泛解析,并不重要.
如果你不需要實現(xiàn)任意二級域名,那就用不著去實現(xiàn)泛解析,直接把你需要的二級域名定死,然后在url重寫里處理好了!
再退一步,如果連二級域名都不用實現(xiàn),僅僅是對一個固定域名下的url進行重寫,那都不需要修改msdn的那個urlrewriter,直接拿來用就可以實現(xiàn)了簡單的url重寫. zyw對這個項目進行的修改,只是為了取到全部的url進行更大限度的控制.而如我們所見,一開始msdn的那個urlrewriter并不關心域名的問題
我一開始給文章起這樣的題目,是因為最近我項目里用到了,寫文檔的時候順便就把這個文章寫了



微軟的URLRewriter是什么?這個項目在哪里下載的?
這個是在msdn上一篇介紹URLRewriter的文章中提供的示例程序,可以在這里下載到
http://www.microsoft.com/china/msdn/library/webservices/ASP.NET/URLRewriting.mspx


怎么使用這些代碼?麻煩嗎?
肯定的說,不麻煩,要做的事情有:
下載代碼到你的機器上.
安裝后,把URLRewriter這個項目添加到你自己的工程中
按照上面給的地址里的方法,修改代碼
配置web.config,開始使用.


什么是httpmodule?

簡單理解,就是一塊處理http請求的程序
更詳細的理解,請查閱sdk文檔.


怎么樣實現(xiàn)泛解析?

首先,在域名服務商那里添加一個*.kerry.com的二級域名,指向你的服務器ip
然后,在IIS里建立一個站點,這個站點的主機頭留空,一般端口是80. 這個站點就是整個服務器端口80的默認網(wǎng)站.
給這個站點添加一個通配符應用程序映射(IIS站點屬性 ->主目錄 -> 配置),這個映射的目的是要ASP.NET ISAPI接管任何沒有在IIS里明確的二級域名站點.


隨便輸入二級域名的時候,發(fā)生了什么?
當IIS檢測到傳入的url是一個二級域名的時候,它會先檢查IIS上有沒有注冊了這個二級域名的站點,如果有,就轉(zhuǎn)入到這個站點,否則,就會轉(zhuǎn)到默認站點,這個默認站點就是之前配置的主機頭為空的那個站點.所以,一個端口只能有一個主機頭為空的站點.
我們已經(jīng)設定由ASP.NET ISAPI接管這些沒有家的孩子.寫程序,分析傳入的url,執(zhí)行重寫.

AspNet技術asp.net用url重寫URLReWriter實現(xiàn)任意二級域名第1/2頁,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 忍之国| 一级片黄色录像免费看| 郑荣植个人资料| 金瑞亨为艺术奉献的电影有哪些| 公务员体检甲状腺一共查几项| 戴夫·巴蒂斯塔| 我家来了个怪男人| 《失乐园》电影| 土壤动植物的乐园教学反思| e-dog| 安塞| 春风不问路| 日本大片ppt免费ppt电影| 红色一号电影| 尤克里里谱| freexxxmovies| 追捕电影国语版完整版| 全家福演员表| 红灯区在线观看完整版| 蓝心妍的电影《极乐宝鉴》免费国语 | 斗音| 无耻之徒豆瓣| 预备党员思想汇报1500字| 性感瑜伽| 鬣狗交配视频| 肖叮叮的剿匪记 电视剧免费观看| 速度与激情9| 中国古代寓言阅读记录卡| 让娜迪尔曼| 黄金太阳2| 金针菇尽量少吃最好不吃什么| 洪金宝电影| 电子元器件基础知识| 池田夏希| 禁忌的恋爱关系凯帕克| 《求知报》答案| 二年级下册数学期末试卷人教版| 罗丽·星克莱尔| 朱茉颜| 在爱的名义下| 草原儿女|