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)实现程序自动二级域名,域名需要泛解析

  • 相关阅读:
    react axios 跨域访问一个或多个域名
    基础复习1
    Webpack笔记
    小程序笔记下
    小程序笔记上
    webpack-dev-server的使用
    webpack资源加载常用配置
    vue实现组件切换的两种方式
    vue实现一个评论列表
    子组件调用父组件的数据及方法
  • 原文地址:https://www.cnblogs.com/weekzero/p/8710766.html
Copyright © 2011-2022 走看看