ISAPI--- IIRF(Ionics Isapi Rewrite Filter)的应用
为了能使用友好且简介的URL,我们常使用URl Rewrite进行URL的跳转。本文介绍的这款ISAPI 筛选器--IIRF,具有以下优点。
1. 开源且免费。
2. 支持正则表达式。
3. 支持多个系统和IIS版本,Windows Server 2003 (including R2) with IIS6, Windows Vista SP1 or later with IIS7, and Windows Server 2008 with IIS7. 我已经在Windows7和IIS7环境下使用过,也没有问题。
4. 目前的版本已经支持64位系统。但经过测试必须使用在32位模式下运行的IIS。
加载IIRF有以下几步必须注意,否则不能加载成功(注意:以下前两步必须确保完成,否则IIS不能加载IIRF.DLL)。
1. 拷贝 IIRF DLL (IIRF.dll)和IIRF.ini到合适的目录(自己决定),给该目录增加Everyone用户的读,执行权限。
2. 给该目录增加IIS组权限,在目录属性-安全-高级中。Windows Server 2003 增加 IIS_WPG 组权限, Windows XP增加 IUSR_<hostname>, Windows7增加IIS_IUSR组权限。
3. 在IIS需要Rewrite的某个站点的属性中,在ISAPI Filtes这个选项卡中,指定以上两步所设置的IIRF.DLL所在路径,名称可以随便起。
4. 在IIRF.INI文件中写正则表达式,用以匹配你的URL.如把http://IPAddress/1234-4567 重定向到http://IPAddress/search.aspx?issn=1234-4567.
以下时在运行IIRF时需要注意的地方:
1. 把IIRF.INI拷贝到站点的根目录下。
2. 64位的系统保证IIS在32位模式下运行,IIS7直接在界面设置即可,而IIS6需要执行以下命令:
1>.打开命令提示行,并定位到:%systemdrive%\Inetpub\AdminScripts directory。
2>.键入以下命令:cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 “true”(此引号为半角双引号)。
3>.回车。
3.此时保证IIS6的“网站-属性-ISAPI Filtes”的.net framework是32位的。
4.以上一切就绪,重启IIS。即使在ISAPI Filtes看到你添加的IIRF.dll,是未知状态,没有出现绿色的箭头也没关系,直接访问网页,如访问成功,绿色箭头就会出现了。
5. 如果出现红色箭头,表示加载未成功。你需要检查你的IIRF.dll的权限设置是否按上文中所述设置,还要注意你的机器是32位还是64位。确认好这两点,基本就没有问题。
IIRF出处:http://iirf.codeplex.com/