完整的 .htaccess 文件
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z0-9_\-]+)/([a-z0-9_\-]+)/(index\.php)?$ /main.php?type=$1&action=$2 [NC,QSA,L]
所以,
www.server.com/users/new/
重定向至:
www.server.com/main.php?type=users&action=new
该规则在我的测试机器上运行良好。
然而在另一台机器上,
它失败了如果有以相同名称开头的文件:
/
|- main.php
|
+--[users]
|- new.inc.js
请求
www.server.com/users/list/ --> 200 OK (main.php returns results as expected)
www.server.com/users/new/ --> 404 Not Found
如果我删除“new.inc.js”,请求将按预期重定向。
什么配置标志会导致这种行为?
(我已经为此苦苦思索了一段时间了)
更新
(我添加了完整的 .htaccess 文件内容)
index.html
并且index.php
是目录索引
(而且对我来说这也没什么意义:()
答案1
你有mod_negotiation
是否已安装?如果已安装,它将接受您的新请求并尝试找出您真正想要发送的文件。请确保您没有Options MultiViews
设置。因此,在.htaccess
put中Options -MultiViews
。