关于重定向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:\windows\microsoft.net\framework\v2.0.50727\aspnet_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
附另外两个地址
关于重定向urlrewriter.urlmapping的更多相关文章
- .Net Intelligencia.UrlRewriter 重定向参数中文支持配置方法
在使用.Net 官方 Url重定向组件时,发现若原地址包含中文,如:http://localhost/首页.html 重定向为:http://localhost/index.aspx?id=首页 时 ...
- IIS7.5+WebConfig实现页面伪静态和301重定向
IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪静态的文章网络上一大堆.但在iis7.0或iis 7.5 ...
- 利用URLRewriter.dll 实现ASP.NET实现伪静态
大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访 ...
- Http状态码之:301、302重定向
概念 301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地 ...
- 前端学HTTP之重定向和负载均衡
前面的话 HTTP并不是独自运行在网上的.很多协议都会在HTTP报文的传输过程中对其数据进行管理.HTTP只关心旅程的端点(发送者和接收者),但在包含有镜像服务器.Web代理和缓存的网络世界中,HTT ...
- Web安全相关(三):开放重定向(Open Redirection)
简介 那些通过请求(如查询字符串和表单数据)指定重定向URL的Web程序可能会被篡改,而把用户重定向到外部的恶意URL.这种篡改就被称为开发重定向攻击. 场景分析 假设有一个正规网站http:// ...
- Spring MVC重定向和转发以及异常处理
SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...
- Chrome在302重定向的时候对原请求产生2次请求的问题说明
这个问题应该确确实实是一个Chrome的BUG,我在自己的编程环境中发现,并在多个服务器,多个编程语言的运行环境,以及多个浏览器下都测试过,都看到有2次请求出现.为了证明不是自己环境的问题,我也特意去 ...
- 重定向Http status code 303 和 302
http 302 http 303 Http 302 302是一个普通的重定向代码.直观的看来是,请求者(浏览器或者模拟http请求)发起一个请求,然后服务端重定向到另一个地址.而事实上,服务端仅仅是 ...
随机推荐
- zigbee学习之路(三):按键的控制
一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...
- TCP状态转移图学习总结
http://blog.csdn.net/hairetz/article/details/6221620 这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些 ...
- Uva 11324 最大团
题目链接:http://vjudge.net/contest/141990#problem/B 题意: 给一张有向图G,求一个结点集数最大的结点集,是的该结点集中任意两个结点 u 和 v,满足: 要么 ...
- Animating graphic objects in Windows Forms.
原文: Animating graphic objects in Windows Forms. http://bobpowell.net/animation.aspx 文件下载备份:http://fi ...
- new一个数组,delete释放内存
int *a = new int[4]; for(int i=0;i<4;i++) { a[i] = i; printf("a[%d]=%d\n", i, i); } del ...
- win10离线安装.net framework 3.5
1.挂载win10系统镜像 2.执行命令 Dism /online /enable-feature /featurename:NetFX3 /All /Source:I:\sources\sxs /L ...
- openssl证书相关
http://blog.csdn.net/modianwutong/article/details/43059435 http://www.cnblogs.com/E7868A/archive/201 ...
- 初试 Matlab 之去除水印
这几天很痛苦地去学习了下用 Matlab 来处理图像,其实那些算法我觉得还不算很难理解,可是 Matlab 这种反人类的语法(可能对于我来说是这样吧,毕竟熟悉了 C++ / Java 的语法一时间很难 ...
- ASP.Net Web.config 中引用外部config文件
1. 前提准备: Web.config file: <?xml version="1.0" encoding="utf-8"?><config ...
- sql server查看正在执行的进程
SELECT SPID = er.session_id ,Status = ses.status ,[Login] = ses.login_name ,Host = ses.host_name ...