Apache服务器在运行重写规则之前添加.php扩展名

时间:2015-04-20 09:08:57

标签: php apache mod-rewrite

我在本地计算机(Mac OS X)上重新安装了apache2,我遇到了这个问题:

之前我有一些重写规则。我在其他任何人面前都有这个规则:

RewriteRule ^v1/users/authenticate$ /v1/users_authenticate.php [L]

我在/ v1文件夹中也有 users.php 文件。所以,如果我尝试拨打 http://localhost/v1/users/authenticate

我在Rewrite日志中看到服务器尝试匹配为:

添加路径信息后缀:/v1/users.php - > /v1/users.php/authenticate

如果我删除users.php文件,规则可以正常工作。

因此,通过询问users / authenticate和users.php是否存在,它需要users.php并使用它。如果users.php不存在,则按预期运行规则。

请注意,重写引擎在其他所有情况下都能正常工作。

  • 实验1:如果我在root上创建v1.php文件,则没有任何反应。
  • 实验2:如果我将users.php重命名为users.wtf,则会发生同样的情况,这次在运行规则之前添加.wtf扩展名

1 个答案:

答案 0 :(得分:1)

尝试在htaccess文件中添加以下内容:

选项-MultiViews