常用基础 - 隐藏目录索引 ¶
作者:KK
发表日期:2017.4.14
什么是目录索引 ¶
比如/a目录下有1.php、2.php和3.php,那这个目录下的这些文件列表就是目录索引
有时候你会发现当访问http://localhost/a这样的地址的时候,只是指定了a目录但没有指定文件名
与此同时a目录下又没有主机目录索引,于是就没有网页可以输出,也没有脚本可以运行了
这下怎么办呢?在开启目录索引的时候,Apache就会把所有文件列表给显示出来(如下图)
如果关闭了目录索引就会提示You don't have permission to access 访问目录 on this server.
(你无权浏览该目录)
开关控制 ¶
通常我们都不会随便开启显示目录索引,这是为了不暴露服务器文件内容(有些内容无关紧要的站点会开启显示,比如一些开源软件镜像站)
它是通过Options
指令来设定开启或关闭的,Options
指令有4个作用区域可以设定:
全局作用域
VirtualHost指令作用域
Directory指令作用域
hatccess作用域
在这三个地方找到Options指令然后看看后面有没有Indexs
把它删掉或者改成-Indexs
就可以了(Indexs或+Indexs表示开启)
作用域覆盖 ¶
但是可以互相覆盖外部作用域的,比如如果全局作用域设定为Options -Indexs
,那如果在个别VirtualHost里设定Options +Index
,则默认所有全局所有虚拟主机听从全局设定要隐藏索引,而设定了+Indexs的个别主机会显示索引(如下图所示)
所以如果在htaccess里使用该指令的话,可以控制某一个目录特殊允许列出文件列表