我有一条重写规则会将所有请求发送到index.php
:
RewriteRule ^.*$ index.php [NC,L]
除非请求路径以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
。
我该如何解决这个问题?
答案 0 :(得分:0)
正如@wrikken在Serverfault中所建议的,我添加了这个:
Options -Multiviews
they usually don't play very nice in combination with mod_rewrite