<p>在浏览一些镜像文件站的时候,会发现网站目录是可以浏览文件(夹)列表的。举两个例子:网易开源镜像;Ubuntu。只要 Web 服务器是基于 Apache 的网站都可以开启或禁止索引(目录浏览),那么如何实现禁止和开启显示目录索引呢?</p><p>一、禁止 Apache 显示目录索引</p><p>方法1、修改Apache配置文件[httpd.conf]</p><p>(1)目录配置</p><pre class="brush:bash;toolbar:false"><Directory/home/www/teddysun">
#OptionsIndexesFollowSymLinks
OptionsFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory></pre><p>将 Options Indexes FollowSymLinks 改成 Options FollowSymLinks 即可以禁止 Apache 显示该目录结构。</p><p>解释:Indexes 的作用就是当该目录下没有指定 index.html 文件时,就显示目录结构,去掉 Indexes ,Apache 就不会显示该目录的列表了。</p><p>(2)虚拟机配置</p><pre class="brush:bash;toolbar:false"><virtualhost*:80>
ServerNamedomain
ServerAliasdomains
DocumentRoot/home/www/teddysun
CustomLog/home/www/teddysun/logs/access.logcombined
DirectoryIndexindex.phpindex.html
<Directory/home/www/teddysun>
Options+Includes-Indexes
AllowOverrideAll
OrderDeny,Allow
AllowfromAll
</Directory>
</virtualhost></pre><p>此处,在Indexes前面加上 – 符号也是可以禁止 Apache 显示该目录结构。</p><p>解释:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。</p><p>方法2、修改.htaccess文件</p><p>在网站根目录修改 .htaccess 文件,增加如下代码(若无.htaccess 文件则新建):</p><p><Files *></p><p>Options -Indexes</p><p></Files></p><p>解释:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。</p><p>二、开启并定制 Apache 显示目录索引样式</p><p>(1)修改Apache配置文件[httpd.conf]</p><pre class="brush:bash;toolbar:false"><Directory/home/www/teddysun">
OptionsIndexesFollowSymLinks
IndexStyleSheet"/css/style.css"
IndexOptionsFancyIndexingHTMLTableScanHTMLTitlesFoldersFirstNameWidth=85DescriptionWidth=128IconWidth=16IconHeight=16VersionSortCharset=UTF-8
AllowOverrideall
Orderallow,deny
Allowfromall
</Directory></pre><p>解释:在 Options 选项中写入 Indexes,即是打开了目录浏览功能。CentOS6中通过yum安装的 Apache 默认是打开了目录浏览的,但是使用浏览器访问首页,却不能显示出目录,原因在于/etc/httpd/conf.d/welcome.conf文件中的 Indexes 前面有个 – 符号,即 Apache 默认禁止了首页的目录浏览功能。</p><p>(2)自定义索引(目录浏览)样式</p><p>上一步的 IndexOptions 选项可以自定义索引(目录浏览)样式,如下:</p><p>FancyIndexing 开启目录浏览修饰</p><p>HTMLTable 此选择与FancyIndexing一起构建一个简单的表来进行目录浏览修饰。</p><p>ScanHTMLTitles 搜索HTML标题</p><p>FoldersFirst 目录优先排在前面</p><p>NameWidth=85 表示文件名可以最多显示85个英文字符</p><p>DescriptionWidth=128 表示描述可以显示的字符数</p><p>IconWidth=16 Icon的宽度(像素)</p><p>IconHeight=16 Icon的高度(像素)</p><p>VersionSort 版本排序,如果没有此项,将按照拼音顺序排序</p><p>Charset=UTF-8 字符集</p><p>其他诸如:</p><p>AddAltClass、IconsAreLinks、IgnoreCase、IgnoreClient、ShowForbidden、SuppressColumnSorting、SuppressDescription、SuppressHTMLPreamble、SuppressIcon、SuppressLastModified、SuppressRules、SuppressSize、TrackModified、Type等请阅读参考链接。</p>