zoukankan      html  css  js  c++  java
  • 关于重定向urlrewriter.urlmapping

    大家都知道web.config 中的 urlMappings怎么用

    <system.web>
      <urlMappings enabled="true">
         <add url="~/login.html" mappedUrl="default.aspx?state=222"/>
         <add url="~/login.aspx" mappedUrl="default.aspx?state=6"/>
      </urlMappings>
    </system.web>

    这个配置可以使ASP.NET程序在ASP.NET Development Server(就是建ASP.NET项目时选文件系统)直接支持UrlMapping,不过它有几个不足之处:
    1、只能映射固定的地址,所以只能一个地址一个地址的配置
    2、ASP.NET Development Server中可以不用配什么别的地方,在IIS中受请求响应模型所限,估计还是要在IIS中设映射。这样的话,反而搞得我到处找资料,看怎么实现在ASP.NET Development Server设置映射,得到的结果是不行。
    针对于UrlMapping的不支持正则表达式的缺陷,我做了个支持正则表达式的UrlMapping,可惜由于UrlMapping是由HttpApplication调用的,而HttpApplication是Internal的,不能对它做什么动作,所以实现的东东和UrlMapping相比做在Web.config中多做个<Section>

    文件下载

    (下载文件中包括RegexUrlMapping组件和一个示例ASP.NET,注意ASP.NET程序需部署在IIS中,并且要设置映射,方法是右击虚拟目录,选属性,选配置,在通配符应用程序映射中添加c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll的引用,并去掉确认文件是否存在的钩,这里是为了偷懒才用通配符全部映射到ASP.NET2.0的ISAPI,实际开发中最好酌情添加具体一点的映射)
    Web.config中的配置举例如下:

    <?xml version="1.0"?>
    <configuration>
        <configSections>
            <section name="RegexUrlMappings" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
        </configSections>
        <RegexUrlMappings enabled="true" rebaseClientPath="true">
            <add url="(d+)$" mappedUrl="default.aspx?id=$1"/>
            <add url="(?<=/)(?<id>[a-z]+)$" mappedUrl="default.aspx?id=${id}" />
            <add url="/$" mappedUrl="/default.aspx?id=0"/>
        </RegexUrlMappings>
        <system.web>
            <httpModules>
                <add name="RegexUrlMappingModule" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
            </httpModules>
            <compilation debug="true"/>
            <authentication mode="Windows"/>
        </system.web>
    </configuration>

    其中RegexUrlMapping的属性enabled用于打开和关闭映射,rebaseClientPath参见HttpContext.RewritePath中rebaseClientPath参数

    <add>用于添加映射规则,url为匹配路径的正则表达式pattern,mappedUrl是替换规则,用法参见Regex.Replace方法
    上例中,第一个add在url中用括号定义了组1,所以在后面引用$1
    第二个add在url中用(?<id>)定义了组id,后面用${id}引用了这个组
    第三个是固定字符串替换
    呵呵,看来正则表达式还是很重要滴~~

    http://www.urlrewriting.net/159/en/downloads.html

    http://urlrewriter.net/index.php/download

    附另外两个地址

  • 相关阅读:
    TCP系列49—拥塞控制—12、DSACK下的拥塞撤销
    TCP系列48—拥塞控制—11、FRTO拥塞撤销
    TCP系列47—拥塞控制—10、FACK下的快速恢复与PRR
    TCP系列46—拥塞控制—9、SACK下的快速恢复与Limited transmit
    TCP系列45—拥塞控制—8、SACK关闭的拥塞撤销与虚假快速重传
    使用kdump内核调试工具遇到的问题及解决
    TCP系列44—拥塞控制—7、SACK关闭的快速恢复
    TCP系列43—拥塞控制—6、Congestion Window Validation(CWV)
    RMAN 前期准备工作和实例
    RMAN 参数详解
  • 原文地址:https://www.cnblogs.com/TivonStone/p/3564818.html
Copyright © 2011-2022 走看看