藉助微軟提供的url重寫類庫URLRewriter.dll(1.0)實現程序自動二級域名,域名須要泛解析

二級域名和系統中會員賬號自動關聯,也就是系統中註冊一個會員,會員自動就能夠經過二級域名來訪問,好比個人賬號是zhangsan,我在morecoder.com註冊後,訪問zhangsan.morecoder.com就是個人我的空間。html

實現這個功能有多種方式,本文是經過微軟官方提供的url重寫dll實現。c#

URLRewriter.dll1.0版本,微軟提供,適用於iis6iis7或以上版本。app

微軟提供的原版dll並不支持二級域名,須要更改源碼後從新生成dlldom

具體實現步驟:url

1、微軟官方下載安裝文件「MSDNURLRewriting.msi」,安裝後是源碼的解決方案。spa

找到安裝後的目錄,以下圖:code

 1.png

2「URLRewriter」文件夾是url重寫核心代碼,更改BaseModuleRewriter.cs文件內容htm

原內容:blog

protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication) sender;
            Rewrite(app.Request.Path, app);
        }

更改成:get

protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication) sender;
            Rewrite(app.Request.Url.AbsoluteUri, app);
        }

三、更改ModuleRewriter.cs文件內容

原內容:

string lookFor = "^" + RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, rules[i].LookFor) + "$";

更改成:

string lookFor = "^" + rules[i].LookFor + "$";

四、更改完成後從新生成項目,將新生成的URLRewriter.dll複製到項目中使用

五、Webconfig對應配置節點參考:

<RewriterRule>
    <LookFor>http://(\d+)\.morecoder\.com</LookFor>
    <SendTo>/default.aspx?domain=$1</SendTo>
</RewriterRule>

轉載:藉助微軟提供的url重寫類庫URLRewriter.dll(1.0)實現程序自動二級域名,域名須要泛解析

相關文章
相關標籤/搜索