[iis6.0]IIS6 rewrite没有问题但rewrite规则无效解决办法

时间:2018-08-19  来源:SAP  阅读:

 现在经常用到ISAPI_Rewrite,遇到的问题就是在本地测试的时候,一切没有问题,到服务器上,竟然不起作用。郁闷

安装IIS的rewrite组建

由于服务器安装了IIS6,因此要实现伪静态要先下载rewrite组建,这里博主提供了下载.

ISAIP筛选器添加rewrite组建

重启服务器。

这时候我要写一个重写掉index.php的rewrite规则,但是老是不生效。

 代码如下

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule /httpd(?:.ini|.parse.errors) / [F,I,O]
RewriteCond URL ^/(?!static|index.php|robots.txt|favicon.ico|cmsinfolist.php).*
RewriteRule /(.*) /index.php/$1 [I,L]

经过试验发现把httpd.ini文件放在 Rewrite.dll的目录的时候就可以实现重写,因此感觉可能是权限的问题。最后给了网站目录 IIS_WPG写权限之后就可以使用了。


经过我的一些探索,发现了Rewrite不起作用的原因如下:


 1、IIS_WPG对ISAPI_Rewrite.dll没有读取的权限
 2、IIS_WPG对httpd.ini没有读取的权限
 3、IIS_WPG对站点目录中的httpd.ini没有读取的权限(用于每个站点有独立的httpd.ini)。
 4、IIS_WPG对站点目录中没有写入的权限(ISAPI_Rewrite要写入一个httpd.parse.errors文件)。

 基本上就是这个问题了,如果是启动进程池的用户不是IIS_WPG组的,请修改成相应的用户有足够的权限。

3,4这两个问题可能经常有朋友会遇到,ISAPI_Rewrite安装好了,只有在ISAPI_Rewrite的安装目录的httpd.ini起作用,对于Web站点根目录的站点无效。其实就是IIS_WPG组对站点目录没有读取的权限,ISAPI_Rewrite是用IIS_WPG组的用户执行的。

[iis6.0]IIS6 rewrite没有问题但rewrite规则无效解决办法

http://m.bbyears.com/qiyexinxihua/43713.html

推荐访问:iis网站备份
相关阅读 猜你喜欢
本类排行 本类最新