asp.net下用url重寫URLReWriter實現任意次層網域的方法第1/2頁

來源:互聯網
上載者:User

摘要:
解釋了url重寫的相關知識.用asp.net實現次層網域重寫的方法.對重寫的一些問題做了匯總解答.提供了幾段範例程式碼.

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

來找這篇文章的,應該都知道什麼叫次層網域吧,廢話就不說了.但是討論前,先要明白一個思想問題.
很多朋友一直考慮不清(我前幾天也一直搞不明白)的問題是,我鍵入一個地址後,怎麼這個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地址,就可以在處理的時候動手腳.

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

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

文章結束了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.