程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> asp.net用url重寫URLReWriter實現任意二級域名

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

編輯:關於ASP.NET

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

來找這篇文章的,應該都知道什麼叫二級域名吧,廢話就不說了.但是討論前,先要明白一個思想問題.

很多朋友一直考慮不清(我前幾天也一直搞不明白)的問題是,我鍵入一個地址後,怎麼這個url就被重寫了?

第一步:在浏覽器鍵入了一個地址,比如http://www.bianceng.cn,點回車後,都發生了什麼?

為了把問題簡單化,我來這樣解釋:

第二步:首先,鍵入的地址被解析,最終來到了一台web服務器.交給IIS處理.在.net的世界中,IIS會把這樣的請求再交給一個web處理器 處理,最後,該 web處理器 把處理的結果返回給浏覽器,顯示給用戶看.

請不用忽略這樣一個問題,第二步的所有事情都是在服務器端做的.在這些事情進行的時候,用戶端的浏覽器上面的地址不會改變.即使最後 web處理器 把處理結果返回來的時候,上面的地址也不會改變.

一開始鍵入的url,只是起一個敲門的作用,門敲完了,作用就算結束了,只有你的眼睛可以看到那個地址,浏覽器,服務器等都不知道這個地址.

然後要明白的問題是,所謂url重寫,也只是web開發人員知道的內幕情況,用戶根本不知道發生了什麼,他認為自己鍵入的地址就是應該出來屏幕上顯示的結果.也就是說,我們在幕後控制要顯示的內容.

接下來要考慮的是,怎麼樣控制顯示的內容?

從上面說的過程,很明顯要在 web處理器 的工作這一步動手腳.

一個最簡單的考慮是,用戶敲入了一個簡單的不帶任何參數地址, http://www.bianceng.cn然後我們把這個地址改成一個符合程序需要的帶參數的地址, http://kerry.com?lover=notus,最後處理之.

所謂的url重寫,就是在這一步.

用.net的術語來說,我們需要給應用程序注冊一個httpmodule,用來處理特定的url

注冊httpmodule,在web.config,

處理url,在我們提供的httpmodule程序中

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

//用我們的httpmodule程序截獲原始url

String OriginalUrl=” http://www.bianceng.cn”;

//處理原始url,得到最後需要的url,值為http://kerry.com?lover=notus

String FinalUrl=Rewrite(OriginalUrl);

// context重新將url在內部發送給IIS處理

context.RewritePath(FinalUrl);

接下來,我們來實現url重寫.

第一步:確定要對哪些url執行重寫,即制定重寫規則

第二步:編寫httpmodule處理程序

第三步:將編寫的httpmodule整合入web程序,開始工作.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved