我有一条重写规则,将所有请求发送到index.php
:
RewriteRule ^.*$ index.php [NC,L]
(除此以外RewriteEngine On
,这就是文件中的全部内容.htaccess
)
它可以工作,除非请求路径以 开头index/
,在这种情况下结果为404 Not Found
。
如果我将文件名更改index.php
为index2.php
(并将重写规则与之匹配),它会再次开始工作,因此当请求路径的第一段等于目标文件的第一段时,显然存在冲突。
日志mod_rewrite
包含以下内容(请求时/index/hello
,失败):
add path info postfix: /path/to/index.php -> /path/to/index.php/hello
strip per-dir prefix: /path/to/index.php/hello -> index.php/hello
applying pattern '^.*$' to uri 'index.php/hello'
rewrite 'index.php/hello' -> 'index.php'
add per-dir prefix: index.php -> /path/to/index.php
initial URL equal rewritten URL: /path/to/index.php [IGNORING REWRITE]
(为了便于阅读,删除或修改了一些日志信息。)
我的服务器是Apache/2.2.22
。
注意:在我重新在新服务器上安装 Debian 之前,此网站(包括.htaccess
文件和index.php
文件)一直运行正常,因此我假设存在某种配置冲突或版本错误导致现在出现此问题。我没有更改任何网站文件。
有任何想法吗?