用了好多年的IIS下的伪静态利器IIRF,因为服务器的升级计划,也将从1.2升级到2.1了,不多说了,IIRF的最新版本介绍及升级使用注意事项请看[URL=http://iirf.codeplex.com 即便是现今MVC的Router出现了,这个IIRF还是会需要的。 我安装的是全局调用,在安装后,所有应用程序池会自动停掉,查看系统日志,有报错:IIRF: event ID 3, IIRF: Could not open ini file ” (error: 13, 经Google官方的论坛,得到启示是我的站点用户访问权限的问题,只需要给IIRF.ini文件加上IIS_WPG的访问权限即可。 另外需要注意的就是,全局开启IIRF的时候,每个站点根目录下面都需要放置IIRF.ini文件,即便是空文件都行,这点我觉得需要改进。
IIS 5/6的URL Rewrite也可以通过IIRF(Ionic's Isapi Rewrite Filter)来实现。 URL进行处理,通过IIRF,我们可以直接跳aspnet_isapi.dll,要知道,这种方式在ASP.NET是无法实现的。 IIRF跟ASP.NET重写URL一样,它也是基于正则的方式来匹配,具有LOG记录,请求的条件判断。 安装 IIRF安装需要我们手动操作来完成。 IsapiRewrite4.ini是IIRF配置文件,每次该文件更改之后,IIRF会自动重新加载该文件,无需重启IIS来重新加载配置,如果您修改后INI文件后格式不正确,IIRF将会自动获取最后正确加载的配置文件 日志 IIRF能够将INI配置文件加载,用户的URL请求记录都会保存到指定的日志文件里。
例如您使用了IIRF做URL Rewrite,并让上面的Control Adapter生效,还是会发现页面上PostBack的地址和客户端请求的地址不同。难道RawUrl也变得“不忠诚”了? IIRF作为一个成熟的开源组件,它自然知道ASP.NET引擎,乃至所有的ISAPI处理程序都需要它的帮助,它自然知道“改出手时就出手”的道理,因此它练就了将原始地址存放在服务器变量HTTP_X_REWRITE_URL 不过IIRF也不会“自觉”地这么做(多累啊),这还要我们在配置文件中提醒它: RewriteRule ^/User/(\d+)$ /User.aspx? 在Modifier集合中加入U表明我们需要IIRF将URL Rewrite之前的原始地址存放在服务器变量HTTP_X_REWRITE_URL中。
2)Ionics ISAPI Rewrite: http://cheeso.members.winisp.net/IIRF.aspx 全免费开源组件。