本地测试用的apache服务器,发现URL不带扩展名,只有文件名时,apache服务器也会自动访问对应的文件,搜索了一下,是apache服务器配置有一个MultiViews选项。

MultiViews的作用是,如果apache服务器收到一个URL请求比如 /some/dir/foo,然后 /some/dir/foo 这个对象不存在,那么apache会自动查找 /some/dir 目录下所有名为 foo.* 的文件,无论是什么后缀名,如果正好这个目录下有 foo.jpg,那就返回 foo.jpg ,这就容易导致在设置伪静态的时候出现一些奇奇怪怪的问题了。

所以,如果不想要apache自动加隐性后缀名的话,那找到对应虚拟主机的目录配置

<Directory  "/wwwroot/example">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
</Directory>

把 +MultiViews 去掉,重启apache即可。

标签: apache

添加新评论