Apache:无扩展名的 URL 会自动获得 .php 扩展名

Apache:无扩展名的 URL 会自动获得 .php 扩展名

当我向服务器请求一个没有扩展名但不是目录的 URL 时,apache 会自动为其添加 .php 扩展名。此行为在哪里配置?

编辑:抱歉,我的问题不清楚:我不是问如何做到这一点,我只是发现我的本地服务器(Debian 上的 Apache/2.2.11)可以自行完成此操作(即我没有重写规则)并且我想知道可以在哪里配置它。

答案1

Debian(您提到 Apache 2.2.11 时指的是当前版本,介于 Lenny 和 Sid 之间)在 中默认MultiViews启用了/var/www和目录的选项。启用此选项后,Apache 将尝试将 URI 请求与其知道的扩展名的任何文件进行匹配。也就是说,如果 URI 正在请求,它将尝试、、等操作,直到找到匹配项。/usr/share/doc/etc/apache2/sites-enabled/000-default/testtest.phptest.htmltest.txt

答案2

有几种方法可以做到这一点。我会使用 mod_rewrite 方法:

  • 允许任何以 .php 结尾的 URL(.jpg 等)通过,如果匹配则为最后一条规则
  • 重写 URL 以 .php 结尾,如果匹配则为最后一条规则

相关内容