最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2008年10月27日 16:18:47   作者:  
Asp.net 用url重寫(xiě)(URLReWriter)實(shí)現(xiàn)任意二級(jí)域名
好久沒(méi)有寫(xiě)技術(shù)文章,如果大家看不明白,就多看幾篇,汗,或者,在文章的后面回復(fù)(這是最有效的辦法),我會(huì)盡力幫助大家解答疑惑.

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

一個(gè)最簡(jiǎn)單的考慮是,用戶(hù)敲入了一個(gè)簡(jiǎn)單的不帶任何參數(shù)地址, http://love.kerry.com然后我們把這個(gè)地址改成一個(gè)符合程序需要的帶參數(shù)的地址, http://kerry.com?lover=notus,最后處理之.
所謂的url重寫(xiě),就是在這一步.
用.net的術(shù)語(yǔ)來(lái)說(shuō),我們需要給應(yīng)用程序注冊(cè)一個(gè)httpmodule,用來(lái)處理特定的url
注冊(cè)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);

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

上面就是url重寫(xiě)的基本知識(shí),而用url重寫(xiě)實(shí)現(xiàn)二級(jí)域名,過(guò)程一樣.因?yàn)闊o(wú)論是二級(jí)域名還是三級(jí)域名,都是一個(gè)url地址.只要我們截獲這個(gè)url地址,就可以在處理的時(shí)候動(dòng)手腳.

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

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

文章結(jié)束了.

在實(shí)施過(guò)程中會(huì)碰到一些問(wèn)題,大多是因?yàn)榭瓷厦娴奈恼虏蛔屑?xì)產(chǎn)生的,但是說(shuō)實(shí)話,那么長(zhǎng)的文章要看完也不容易.下面我來(lái)記錄一些重要的問(wèn)題.其中最后的兩個(gè)問(wèn)題,用具體的代碼展示了如何處理重寫(xiě)的目標(biāo)url以達(dá)到我們的要求


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



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


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


什么是httpmodule?

簡(jiǎn)單理解,就是一塊處理http請(qǐng)求的程序
更詳細(xì)的理解,請(qǐng)查閱sdk文檔.


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

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


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

相關(guān)文章

  • .NET Core源碼解析配置文件及依賴(lài)注入

    .NET Core源碼解析配置文件及依賴(lài)注入

    這篇文章我們?cè)O(shè)計(jì)了一些復(fù)雜的概念,因?yàn)橐獙?duì)ASP.NET Core的啟動(dòng)及運(yùn)行原理、配置文件的加載過(guò)程進(jìn)行分析,依賴(lài)注入,控制反轉(zhuǎn)等概念的講解等
    2019-04-04
  • .NET中StringBuilder用法實(shí)例分析

    .NET中StringBuilder用法實(shí)例分析

    這篇文章主要介紹了.NET中StringBuilder用法,實(shí)例分析了StringBuilder在進(jìn)行字符串拼接時(shí)的使用技巧,需要的朋友可以參考下
    2015-01-01
  • .net實(shí)現(xiàn)ping的實(shí)例代碼

    .net實(shí)現(xiàn)ping的實(shí)例代碼

    這篇文章主要介紹了.net實(shí)現(xiàn)ping的實(shí)例代碼,需要的朋友可以參考下
    2014-02-02
  • asp.net core 集成swagger ui的原理解析

    asp.net core 集成swagger ui的原理解析

    本文主要講解了如何對(duì)API進(jìn)行分組,這里僅僅是舉了一個(gè)按照API功能進(jìn)行分組的例子,其實(shí)在實(shí)際開(kāi)發(fā)中,要按照何種方式分組,可以按照需求靈活定義,比如按照API版本進(jìn)行分組
    2021-10-10
  • asp.net頁(yè)面中時(shí)間格式化的示例

    asp.net頁(yè)面中時(shí)間格式化的示例

    這篇文章主要介紹了asp.net頁(yè)面中時(shí)間格式化的示例,需要的朋友可以參考下
    2014-04-04
  • .net core下配置訪問(wèn)數(shù)據(jù)庫(kù)操作

    .net core下配置訪問(wèn)數(shù)據(jù)庫(kù)操作

    本篇文章給大家詳細(xì)分享了在.net core下配置訪問(wèn)數(shù)據(jù)庫(kù)的相關(guān)操作過(guò)程以及代碼實(shí)現(xiàn)過(guò)程,有興趣的朋友參考下。
    2018-03-03
  • Net5?WorkService?繼承?Quarzt?及?Net5處理文件上傳功能

    Net5?WorkService?繼承?Quarzt?及?Net5處理文件上傳功能

    這篇文章主要介紹了Net5?WorkService?繼承?Quarzt?以及?Net5處理文件上傳,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 巧用ASP.NET Cookie

    巧用ASP.NET Cookie

    這篇文章主要介紹了如何巧用ASP.NET Cookie,Cookie是屬于ASP.NET中的七大內(nèi)置對(duì)象中的一種,希望大家可以認(rèn)真學(xué)習(xí),本文完整的對(duì)cookie機(jī)制進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • .NET數(shù)組使用中的注意事項(xiàng)小結(jié)

    .NET數(shù)組使用中的注意事項(xiàng)小結(jié)

    這篇文章主要介紹了.NET數(shù)組使用中的注意事項(xiàng),總結(jié)了常見(jiàn)的三個(gè)數(shù)組使用中的注意事項(xiàng),對(duì)于.NET初學(xué)者有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • ASP.Net?Core中的日志與分布式鏈路追蹤

    ASP.Net?Core中的日志與分布式鏈路追蹤

    這篇文章介紹了ASP.Net?Core中的日志與分布式鏈路追蹤,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下<BR>
    2022-03-03

最新評(píng)論

嘉峪关市| 佛冈县| 石阡县| 嘉禾县| 乳源| 洛扎县| 彩票| 白山市| 昌吉市| 武鸣县| 呈贡县| 耒阳市| 建德市| 昌黎县| 阿勒泰市| 河东区| 防城港市| 麻江县| 宁津县| 肥东县| 望谟县| 英山县| 丽水市| 清丰县| 华坪县| 郸城县| 石嘴山市| 开封市| 白玉县| 汪清县| 绥中县| 扎鲁特旗| 常熟市| 沈阳市| 博客| 石家庄市| 汕尾市| 奈曼旗| 垣曲县| 宣武区| 九寨沟县|