替代ISAPI_Rewrite的IIRF

2013年2月25日 6,577 浏览数 没有评论

  公司网站上使用的是ISAPI_Rewrite,不知是由于访问量太大或是别的什么原因,经常停止工作,需要重启IIS才能恢复。为解决这一问题,Google一番找到了IIRF(Ionic’s Isapi Rewrite Filter)这款软件,它开源、小巧、功能强大,完全可以替代ISAPI_Rewrite,我们可以通过它的官方网站http://iirf.codeplex.com/下载到它。

  以下是我折腾好几个小时的安装使用过程:

  服务器环境:win2003+IIS6

  首先下载“2.1 latest stable”这个版本,无论是zip包还是msi安装文件,都会导致网站无法打开,经查资料说2.1版本有BUG,会影响网站运行,故下载“2.0.1.15”版本。

  解开“2.0.1.15”压缩包,取出bin文件夹中的”IIRF.dll”,上传服务器c:\IIRF文件夹下 (IIRF为新建的文件夹,当然放在其它文件夹下也成)

  对IIRF文件夹添加“IIS_WPG”(读取/运行,读取,写)权限,官网上说还要添加“NETWORK SERVICE”的相关权限,我测试没加,依然工作正常。

  在IIS6中无论是全局还是在单个网站中,右键->属性->“ISAPI筛选器”中加载”IIRF.dll”,都可正常工作。具体加载方法和ISAPI_Rewrite一样,完后重启IIS,再点开看看,显示绿箭头即可。

  在网站根目录下创建”IIRF.ini”文件,并对该文件添加“IIS_WPG”(读取/运行,读取)权限(否则不能工作,切记!)。具体该文件中的规则如果改写,原压缩包中给出非常详细的例子,参照一下。值得称赞的事,每次修改该ini文件都无需重启IIS。

  此时不出意外,IIRF已经可以工作了。全局配置文件“IirfGlobal.ini”需和“IIRF.dll”放在一起,该文件中有三项设置,保证RewriteEngine为ON即可,其它无需更改。注:即使IirfGlobal.ini不存在,IIRF依然正常工作。

  官方教程非常详细,源码中的实例也很多,而我这只是简单记录一下折腾过程,没有太多的价值。

  欢迎交流!
 

分类: 网站相关 标签: ,