zoukankan      html  css  js  c++  java
  • 借助微软提供的url重写类库URLRewriter.dll(1.0)实现程序自动二级域名,域名需要泛解析

    二级域名和系统中会员帐号自动关联,也就是系统中注册一个会员,会员自动就可以通过二级域名来访问,比如我的帐号是zhangsan,我在morecoder.com注册后,访问zhangsan.morecoder.com就是我的个人空间。

    实现这个功能有多种方式,本文是通过微软官方提供的url重写dll实现。

    URLRewriter.dll1.0版本,微软提供,适用于iis6iis7或以上版本。

    微软提供的原版dll并不支持二级域名,需要更改源码后重新生成dll

    具体实现步骤:

    1、微软官方下载安装文件“MSDNURLRewriting.msi”,安装后是源码的解决方案。

    找到安装后的目录,如下图:

     1.png

    2“URLRewriter”文件夹是url重写核心代码,更改BaseModuleRewriter.cs文件内容

    原内容:

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

    更改为:

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

    3、更改ModuleRewriter.cs文件内容

    原内容:

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

    更改为:

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

    4、更改完成后重新生成项目,将新生成的URLRewriter.dll复制到项目中使用

    5、Webconfig对应配置节点参考:

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

    转载:借助微软提供的url重写类库URLRewriter.dll(1.0)实现程序自动二级域名,域名需要泛解析

  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/weekzero/p/8710766.html
Copyright © 2011-2022 走看看