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

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

 更新時間:2008年10月27日 16:18:47   作者:  
Asp.net 用url重寫(URLReWriter)實現(xiàn)任意二級域名

為什么我的httpmodule好像沒有起作用?

在httpmodule程序里設(shè)置斷點后,無論怎么樣,流程都沒有從這里走.原因在于,你沒有向web程序注冊你的httpmodule程序.這個工作需要在web.config中完成.
<system.web>
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
</httpModules>
</system.web>


為什么總是提示我”未知的配置節(jié)RewriterConfig錯誤”

這是因為你沒有向web程序注冊你的RewriterConfig配置節(jié). 這個工作需要在web.config中完成.
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
然后,你可以在<configuration>里使用RewriterConfig節(jié)配置規(guī)則了.


url是在httpmodule的哪個部分處理的?

大多的工作是在URLRewriter. ModuleRewriter. Rewrite()方法里.關(guān)鍵階段是這里:
if (re.IsMatch(requestedPath))
很明顯,這個判斷傳入的url是否是我們要重寫的url,大家接著看,
String sendToUrl = RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, re.Replace(requestedPath, rules[i].SendTo));
這里接受到web.config中配置的要轉(zhuǎn)到的目標(biāo)url
RewriterUtils.RewriteUrl(app.Context, sendToUrl);
在內(nèi)部把url重寫.


我不想把二級域名寫死在web.config中,而且我要重寫的目標(biāo)url也不能寫死.比如我們有這樣的需要
Love.kerry.com實際的處理頁面是kerry.com/action.aspx?id=1
call.kerryl.com實際的處理頁面是kerry.com/action.aspx?id=2
walkwith.kerry.com實際的處理頁面是kerry.com/walk.aspx
要怎么處理?


這個時候,就需要在上面說的那幾個代碼里做手腳.
if (re.IsMatch(requestedPath))
{

//找到url里的二級域名
string [] UserHost = app.Request.Url.Host.Split ( new Char [] { '.' } );
string domain2=UserHost [0];

//根據(jù)需要設(shè)定要重寫的目標(biāo)url
string sendToUrl ;
if(domain2==” Love”)
sendToUrl =” /action.aspx?id=1”;
else if(domain2==” call”)
sendToUrl =” /action.aspx?id=2”;
else i f(domain2==” walkwith”)
sendToUrl =” /walk.aspx”;

RewriterUtils.RewriteUrl(app.Context, sendToUrl);

}

在web.config里配置規(guī)則的時候,需要這樣
<RewriterRule>
<LookFor>http://(\w+)\.kerry\.com</LookFor>
<SendTo>/test.aspx</SendTo>
</RewriterRule>
(\w+)用來匹配任意字符串
這里的test.aspx隨便寫別的也可以,因為我們根本沒有用它.


我有好多不確定二級域名的站點,但是每個站點的頁面確定,每個二級域名站點的內(nèi)容實際上根劇不同的id從數(shù)據(jù)庫調(diào),
情況如這樣
http://localhost/kerry/action.aspx?id=1 love.kerry.com/walk.aspx

http://localhost/kerry/action.aspx?id=14 like.kerry.com/walk.aspx

現(xiàn)在傳上去,不能顯示id參數(shù),都改成二級域名的方式. 這個時候該怎么辦?

首先配置規(guī)則
<RewriterRule>
<LookFor>http://(\w+)\.kerry \.com\ walk.aspx</LookFor>
<SendTo>/action.aspx</SendTo>
</RewriterRule>
然后在程序里這樣處理
//獲取二級域名
string [] UserHost = app.Request.Url.Host.Split ( new Char [] { '.' } );
string domain2=UserHost [0];
根據(jù)域名獲得不同的編號
int id=getIDfromDomain(domain2);
//獲得要轉(zhuǎn)向的基本url
string sendToUrl = RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, re.Replace(requestedPath, rules[i].SendTo));
//加上id參數(shù)
if(id>0)
sendToUrl=string.Format ( "{0}?id={1}" , sendToUrl , id );
else
sendToUrl=”error.aspx”;
//重寫
RewriterUtils.RewriteUrl(app.Context, sendToUrl);


如何匹配目錄?寫了一個lookfor規(guī)則 http://love.kerry.com/,但是在瀏覽器輸入這個地址, 總是不能正確的重寫,經(jīng)過trace后發(fā)現(xiàn)根本不能匹配,為什么?

首先,我們應(yīng)該知道,瀏覽器實際上接受的不是http://love.kerry.com/,而是http://love.kerry.com/default.aspx ,因此,你的</LookFor>規(guī)則應(yīng)該這樣寫
<LookFor>
http://love.kerry.com/default.aspx
</LookFor>
這個default.aspx應(yīng)該是你在iis里配置的默認(rèn)文檔,如果你的是index.aspx或其他奇怪的名字,就寫成你自己的名字
同樣, http://love.kerry.com/fun 這個地址要匹配,需要這樣的規(guī)則http://love.kerry.com/fun/default.aspx
但是,再羅嗦一句,你的文件根本不需要有fun這個目錄,因為...重寫了嘛


我搜到網(wǎng)上還有另外一種解決辦法…

或許你是指這篇文章

http://blog.csdn.net/mengyao/archive/2007/01/25/1493537.aspx

大家可以看到,其基本的方法都是一樣的.之所以沒有把這個列在最前面,是因為這個做法有些取巧,可能一開始不是那么好理解.但是我相信看到最后的朋友再看這篇文章,應(yīng)該都會會心的一笑
Happy programming

相關(guān)文章

  • .NET Core源碼解析配置文件及依賴注入

    .NET Core源碼解析配置文件及依賴注入

    這篇文章我們設(shè)計了一些復(fù)雜的概念,因為要對ASP.NET Core的啟動及運行原理、配置文件的加載過程進行分析,依賴注入,控制反轉(zhuǎn)等概念的講解等
    2019-04-04
  • .NET中StringBuilder用法實例分析

    .NET中StringBuilder用法實例分析

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

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

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

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

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

    asp.net頁面中時間格式化的示例

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

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

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

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

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

    巧用ASP.NET Cookie

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

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

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

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

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

最新評論

临城县| 丹阳市| 二手房| 荃湾区| 隆昌县| 望谟县| 郁南县| 荔波县| 贵阳市| 东兴市| 滨州市| 阜新市| 清镇市| 子长县| 九龙县| 济阳县| 威信县| 嘉黎县| 五家渠市| 沐川县| 岗巴县| 中卫市| 凤城市| 丹棱县| 资阳市| 淄博市| 浦江县| 黎川县| 镶黄旗| 务川| 报价| 曲水县| 林口县| 伊宁县| 南漳县| 隆化县| 玉林市| 铜川市| 屯留县| 个旧市| 新巴尔虎右旗|