如何防止apache2接受没有文件扩展名的url?

use*_*637 1 php apache-2.2

我注意到 apache2 会加载一个页面,比如说 info.php,即使指定的 url 没有像 mysite.com/info 这样的文件扩展名

我认为您需要执行某种形式的 mod_rewrite 才能获得该功能,但显然这是我系统中的默认功能。

有什么方法可以防止这种默认行为,以便只能指定具有文件扩展名的页面?

我已经重写了禁用的仅供参考。

Ins*_*yte 5

您所看到的魔法是由MultiViews选项执行的mod_negotiation

Apache 文档

如果服务器收到对 /some/dir/foo 的请求并且 /some/dir/foo 不存在,则服务器读取目录以查找所有名为 foo.* 的文件,并有效地伪造一个命名所有这些文件的类型映射文件,如果客户端按名称要求其中之一,则为它们分配相同的媒体类型和内容编码。然后它会选择最符合客户要求的文件,并返回该文件。

通过MultiViews在 apache 配置或 .htaccess 文件中关闭来禁用这个魔法:

Options -MultiViews
Run Code Online (Sandbox Code Playgroud)