使用ISAPI重复'index.php'在IIS上重写URL

时间:2012-08-12 15:06:52

标签: url-rewriting iis-6 isapi isapi-rewrite

我正在使用ISAPI_Rewrite v2在IIS 6上删除我的index.php。这就是重写应该如何工作:

http://dev.mysite.co.uk/mypage      => http://dev.mysite.co.uk/index.php/mypage
http://dev.mysite.co.uk/anotherpage => http://dev.mysite.co.uk/index.php/anotherpage

使用$ _SERVER ['REQUEST_URI']我可以看到实际发生的是:

http://dev.mysite.co.uk/mypage      => http://dev.mysite.co.uk/index.php/index.php/mypage
http://dev.mysite.co.uk/anotherpage => http://dev.mysite.co.uk/index.php/index.php/anotherpage

这会导致404错误。重写规则包含在httpd.ini中,它放在我的子域的根文件夹中。这是我正在使用的规则:

[ISAPI_Rewrite]
RewriteRule ^(.*)$ /index.php/$1 [L]

有谁知道可能导致这种情况的原因?我发现this post描述了同样的问题,但没有答案。

由于

1 个答案:

答案 0 :(得分:1)

我猜它只是循环,所以请尝试修复它:

[ISAPI_Rewrite]
RewriteRule /(?!index\.php/.*)(.*) /index.php/$1 [L]