借助微软提供的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)实现程序自动二级域名,域名须要泛解析

相关文章
相关标签/搜索