无限重写规则循环

时间:2011-01-01 19:06:03

标签: php apache .htaccess

我有.htaccess的奇怪问题我无法解决:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?/$1
   RewriteRule watermelonurltest wmelon/core/works.html
</IfModule>

当访问westernurltest时,它会循环到类似:

http://localhost/w/watermelonurltest/index.php/2/index.php/2/index.php/2/index.php/2/index.php/2/index.php/2/index.php/2/(...)

这表明应用RewriteRule ^(.*)$ index.php?/$1代替RewriteRule watermelonurltest wmelon/core/works.html

我试图交换这两个规则,但之后出现了其他问题。

当第一条规则是

时,问题不存在
RewriteRule ^(.*)$ index.php/$1

(.php之后没有问号)

出于某种原因,这个问号打破了它。

我无法弄清楚为什么会发生这种情况以及如何解决这个问题 - 我尝试使用谷歌搜索,但我没有找到任何有用的信息。

提前致谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我试图在新设置中重现这一点,但是使用 .htaccess 和提供的规则,我没有遇到循环;重写是 index.php?/ watermelonurltest ;通过查看重写日志确认。

index.php 做什么重定向?如果有的话?