url重写"同一文件的双路径"

时间:2015-06-28 13:08:44

标签: apache .htaccess mod-rewrite url-rewriting

我的htaccess文件存在问题,但我不明白错误的来源:

例如:

我的文件夹中有以下文件

  • contact.php

我做了一个像

那样的基本改写
 RewriteRule    ^about/$    contact.php [L]

现在可以从http://localhost/project/about/

访问我的联系页面了

问题是该页面也可以从

访问
  • http://localhost/project/contact/

为什么会这样? 我怎么能不允许这样做?

感谢您的所有答案!

1 个答案:

答案 0 :(得分:1)

这是由于启用了选项MultiViews。选项MultiViewsApache's content negotiation module使用,> mod_rewrite之前运行,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.php

要禁止此操作,您可以在.htaccess:

之上添加此行
Options -MultiViews