越简单越好!

iis下Rewrite的配置

发表于 2009-03-30 12:54 | 1285次阅读 0次点赞   杂七杂八

IIS中增加URL Rewrite功能,最多人选用的是名为“ISAPI Rewrite“的软件,网上下载的破解版,其实破解不完善,最终会不能用。

再次查找,找到了Ionic's Isapi Rewrite Filter,完全开源,完全免费,完全没有中文使用手册。

测试后,使用正常,用法分享一下:

首先到官方网站http://www.codeplex.com/IIRF下载最新软件包

一、建立Rewrite目录
IIS上可以安装N个网站,每一个网站的Rewrite要求都不相同,可以在网站服务器C盘根目录建立一个Rewrite文件夹,下面各建立每一个网站的文件夹,分别为SupeSite、Discuz,还有其他网站的话则分别建立文件夹。

二、复制IIRF
复制软件包中的LIB下的IsapiRewrite4.dll文件到按上一条建立的文件夹中,一个文件夹要放一个。

三、建立空白规则文件
用记事本在每一个文件夹中建立IsapiRewrite4.ini文件,注意扩展名为ini。原版说明是说规则文件复制到对应文件夹,然后把文件名改为IsapiRewrite4.ini,我发现这样不好,应该打开ini文件,把规则复制到文件中,这样比较妥当。

四、规则文件格式基本照搬ISAPI Rewrite,要作修改
RewriteRule [源URL正则条件] [目的URL]
ISAPI Rewrite与IIRF的区别就在[目的URL],ISAPI Rewrite的要转义,而IIRF不用转义。
如果网上有现成的ISAPI Rewrite的规则可以直接复制过来,将[目的URL]中的反斜杠()一个个删除就可以用在IIRF中用了。
知道这个之后,你就可以随便在网上与人交流,按ISAPI Rewrite交流,最后把转义符()删掉就行了。

五、日志设置
在IIRF中日志值可以设置为0-5,在规则文件的开头部分有两行设置日志类型
RewriteLog C:RewritesupesiteiirfLog.out (注意要写清楚路径,各站点不同)
RewriteLogLevel 0 (0为不记类,3为一般测试,5为处理故障)

日志的代价高昂,同时不会自动删除文件,日志类型一定要设成0,除非用于检查才能修改为其他值,检查完后一定要改为0,否则日志文件把硬盘占满就麻烦了。

如果日志不为0,筛选器起用后,对应文件夹会产生类似以下的文件,是文本格式的,可以用记事本查看。
iirfLog.out.12345.log

六、IIS中的设置
1.添加Web服务扩展,每一个站点一条扩展,指向相应站点的IsapiRewrite4.dll
2.每个站点的属性中添加一条ISAPI筛选器,指向相应站点的IsapiRewrite4.dll

七、重启IIS服务
重启后就大功告成

八、规则文件可随时修改,随时生效!

有些设置方法可以参考ISAPI Wewrite

返回顶部 ^