Apache服务器下URL不带扩展名也能访问对应文件的解决方法
本地测试用的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即可。