asp.net下用url重寫URLReWriter實(shí)現(xiàn)任意二級域名的方法第1/2頁
更新時間:2007年03月16日 00:00:00 作者:
摘要:
解釋了url重寫的相關(guān)知識.用asp.net實(shí)現(xiàn)二級域名重寫的方法.對重寫的一些問題做了匯總解答.提供了幾段示例代碼.
好久沒有寫技術(shù)文章,如果大家看不明白,就多看幾篇,汗,或者,在文章的后面回復(fù)(這是最有效的辦法),我會盡力幫助大家解答疑惑.
來找這篇文章的,應(yīng)該都知道什么叫二級域名吧,廢話就不說了.但是討論前,先要明白一個思想問題.
很多朋友一直考慮不清(我前幾天也一直搞不明白)的問題是,我鍵入一個地址后,怎么這個url就被重寫了?
第一步:在瀏覽器鍵入了一個地址,比如http://love.kerry.com,點(diǎn)回車后,都發(fā)生了什么?
為了把問題簡單化,我來這樣解釋:
第二步:首先,鍵入的地址被解析,最終來到了一臺web服務(wù)器.交給IIS處理.在.net的世界中,IIS會把這樣的請求再交給一個web處理器 處理,最后,該 web處理器 把處理的結(jié)果返回給瀏覽器,顯示給用戶看.
請不用忽略這樣一個問題,第二步的所有事情都是在服務(wù)器端做的.在這些事情進(jìn)行的時候,用戶端的瀏覽器上面的地址不會改變.即使最后 web處理器 把處理結(jié)果返回來的時候,上面的地址也不會改變.
一開始鍵入的url,只是起一個敲門的作用,門敲完了,作用就算結(jié)束了,只有你的眼睛可以看到那個地址,瀏覽器,服務(wù)器等都不知道這個地址.
然后要明白的問題是,所謂url重寫,也只是web開發(fā)人員知道的內(nèi)幕情況,用戶根本不知道發(fā)生了什么,他認(rèn)為自己鍵入的地址就是應(yīng)該出來屏幕上顯示的結(jié)果.也就是說,我們在幕后控制要顯示的內(nèi)容.
接下來要考慮的是,怎么樣控制顯示的內(nèi)容?
從上面說的過程,很明顯要在 web處理器 的工作這一步動手腳.
一個最簡單的考慮是,用戶敲入了一個簡單的不帶任何參數(shù)地址, http://love.kerry.com然后我們把這個地址改成一個符合程序需要的帶參數(shù)的地址, http://kerry.com?lover=notus,最后處理之.
所謂的url重寫,就是在這一步.
用.net的術(shù)語來說,我們需要給應(yīng)用程序注冊一個httpmodule,用來處理特定的url
注冊httpmodule,在web.config,
處理url,在我們提供的httpmodule程序中
大體相當(dāng)于這樣的一段程序
//用我們的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);
接下來,我們來實(shí)現(xiàn)url重寫.
第一步:確定要對哪些url執(zhí)行重寫,即制定重寫規(guī)則
第二步:編寫httpmodule處理程序
第三步:將編寫的httpmodule整合入web程序,開始工作.
上面就是url重寫的基本知識,而用url重寫實(shí)現(xiàn)二級域名,過程一樣.因?yàn)闊o論是二級域名還是三級域名,都是一個url地址.只要我們截獲這個url地址,就可以在處理的時候動手腳.
這些工作挺麻煩,但是網(wǎng)絡(luò)上已經(jīng)有高人給我們寫了這樣的程序,參看下面的文章:
http://www.microsoft.com/china/m ... t/URLRewriting.mspx
http://www.cnblogs.com/jzywh/archive/2005/09/29/246650.html
http://www.cnblogs.com/jzywh/archive/2006/02/20/334004.html
文章結(jié)束了.
解釋了url重寫的相關(guān)知識.用asp.net實(shí)現(xiàn)二級域名重寫的方法.對重寫的一些問題做了匯總解答.提供了幾段示例代碼.
好久沒有寫技術(shù)文章,如果大家看不明白,就多看幾篇,汗,或者,在文章的后面回復(fù)(這是最有效的辦法),我會盡力幫助大家解答疑惑.
來找這篇文章的,應(yīng)該都知道什么叫二級域名吧,廢話就不說了.但是討論前,先要明白一個思想問題.
很多朋友一直考慮不清(我前幾天也一直搞不明白)的問題是,我鍵入一個地址后,怎么這個url就被重寫了?
第一步:在瀏覽器鍵入了一個地址,比如http://love.kerry.com,點(diǎn)回車后,都發(fā)生了什么?
為了把問題簡單化,我來這樣解釋:
第二步:首先,鍵入的地址被解析,最終來到了一臺web服務(wù)器.交給IIS處理.在.net的世界中,IIS會把這樣的請求再交給一個web處理器 處理,最后,該 web處理器 把處理的結(jié)果返回給瀏覽器,顯示給用戶看.
請不用忽略這樣一個問題,第二步的所有事情都是在服務(wù)器端做的.在這些事情進(jìn)行的時候,用戶端的瀏覽器上面的地址不會改變.即使最后 web處理器 把處理結(jié)果返回來的時候,上面的地址也不會改變.
一開始鍵入的url,只是起一個敲門的作用,門敲完了,作用就算結(jié)束了,只有你的眼睛可以看到那個地址,瀏覽器,服務(wù)器等都不知道這個地址.
然后要明白的問題是,所謂url重寫,也只是web開發(fā)人員知道的內(nèi)幕情況,用戶根本不知道發(fā)生了什么,他認(rèn)為自己鍵入的地址就是應(yīng)該出來屏幕上顯示的結(jié)果.也就是說,我們在幕后控制要顯示的內(nèi)容.
接下來要考慮的是,怎么樣控制顯示的內(nèi)容?
從上面說的過程,很明顯要在 web處理器 的工作這一步動手腳.
一個最簡單的考慮是,用戶敲入了一個簡單的不帶任何參數(shù)地址, http://love.kerry.com然后我們把這個地址改成一個符合程序需要的帶參數(shù)的地址, http://kerry.com?lover=notus,最后處理之.
所謂的url重寫,就是在這一步.
用.net的術(shù)語來說,我們需要給應(yīng)用程序注冊一個httpmodule,用來處理特定的url
注冊httpmodule,在web.config,
處理url,在我們提供的httpmodule程序中
大體相當(dāng)于這樣的一段程序
//用我們的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);
接下來,我們來實(shí)現(xiàn)url重寫.
第一步:確定要對哪些url執(zhí)行重寫,即制定重寫規(guī)則
第二步:編寫httpmodule處理程序
第三步:將編寫的httpmodule整合入web程序,開始工作.
上面就是url重寫的基本知識,而用url重寫實(shí)現(xiàn)二級域名,過程一樣.因?yàn)闊o論是二級域名還是三級域名,都是一個url地址.只要我們截獲這個url地址,就可以在處理的時候動手腳.
這些工作挺麻煩,但是網(wǎng)絡(luò)上已經(jīng)有高人給我們寫了這樣的程序,參看下面的文章:
http://www.microsoft.com/china/m ... t/URLRewriting.mspx
http://www.cnblogs.com/jzywh/archive/2005/09/29/246650.html
http://www.cnblogs.com/jzywh/archive/2006/02/20/334004.html
文章結(jié)束了.
您可能感興趣的文章:
- Nginx服務(wù)器下使用rewrite重寫url以實(shí)現(xiàn)偽靜態(tài)的示例
- AspNetPager分頁控件UrlRewritePattern參數(shù)設(shè)置的重寫代碼
- iis7配置zend framework的地址重寫規(guī)則[url_rewrite]
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級域名 新
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級域名
- url重寫IIRF(Ionic''s Isapi Rewrite Filter)手冊
- 用ISAPI_Rewrite讓IIS也支持如Apache下.htaccess的URL重寫
- IIS下配置頁面重寫(配合插件url-rewrite2去除頁面后綴名)的實(shí)現(xiàn)方法
相關(guān)文章
asp.net 實(shí)現(xiàn)自定義Hashtable (.net)
asp.net Hashtable自定義實(shí)現(xiàn)代碼,比較多,大家可以看下,測試。2009-06-06VS2019下opencv4.1.2配置圖文教程(永久配置)
這篇文章主要介紹了VS2019下opencv4.1.2配置圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11.Net使用分表分庫框架ShardingCore實(shí)現(xiàn)多字段分片
本文詳細(xì)講解了.Net使用分表分庫框架ShardingCore實(shí)現(xiàn)多字段分片的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12