IIS 7的URL Rewrite功能非常强大,可以通过Microsoft URL Rewrite Module来实现,可参看文章使用Microsoft URL Rewrite Module for IIS 7.0修改WEB.CONFIG即可实现*.HTML伪静态 无需修改应用程序映射。
IIS 5/6的URL Rewrite也可以通过IIRF(Ionic's Isapi Rewrite Filter)来实现。IIRF(Ionic's Isapi Rewrite Filter)是一款开源的重写URL过滤器,类似于Apache的URL重写,基于VC8.0(可以用Visual Studio2005或Visual C++ 2005 Express重新编译)开发。它可以运行在IIS5.0+,支持ASP,ASP.NET,PHP等许多格式。相对比ASP.NET2.0自带的URL重写,具有更好的性能和许多我们所需要特性,重要的一点在于:它可以支持无扩展名的URL,让URL更加的方便我们记忆,IIRF能够在aspnet_isapi提前捕获我们所请求的URL进行处理,通过IIRF,我们可以直接跳aspnet_isapi.dll,要知道,这种方式在ASP.NET是无法实现的。IIRF跟ASP.NET重写URL一样,它也是基于正则的方式来匹配,具有LOG记录,请求的条件判断。
安装 IIRF安装需要我们手动操作来完成。到http://www.codeplex.com/IIRF 下载程序:
日志 IIRF能够将INI配置文件加载,用户的URL请求记录都会保存到指定的日志文件里。因为它具有很大的性能开销,因此建议将它日志的记录等级设为0,只有 为了方便调试的时候时候,可以设置为5, RewriteLog <filename stub> 保存的日志路径,如 c:\temp\iirfLog.out RewriteLogLevel {0,1,2,3,4,5} 日志的等级,默认值为0 0 –不会记录日志 1- 少许的日志 2- 比较多的日志 3- 比较详细的日志 4- 详细的日志(4),并会跟踪server variable和替换的字符串。 5- 详细的日志(5),包括日志文件更改的事件,建议方便调试的时候使用 正则 正则的语法跟.NET一样,只不过是格式不一样而已。所以我也不在详细介绍。具体有关正则的说明大家可以用GOOGLE搜索。 格式: RewriteRule <url-pattern> <replacement-string> [<modifiers>] url-pattern:匹配的正则表达式(必需) replacement-string:要替换的字符串(必需) modifiers:有关对RewriteRule的操作标记。可选选项。在下面我会说明 默认下IIRF的url-pattern,replacement-string正则的前面已经带了主机头的。