我想禁用目录浏览/画廊文件夹和所有子目录
/画廊索引/409 *父目录 * i1269372986681.jpg * i1269372986682.jpg * i1269372988680.jpg
我想禁用目录浏览/画廊文件夹和所有子目录
/画廊索引/409 *父目录 * i1269372986681.jpg * i1269372986682.jpg * i1269372988680.jpg
当前回答
创建一个包含以下行内容的.htaccess文件:
Options -Indexes
这是一种选择。另一种选择是编辑apache配置文件。
为了做到这一点,你首先需要用命令打开它:
vim /etc/httpd/conf/httpd.conf
然后找到这一行:Options Indexes FollowSymLinks
将该行更改为:Options FollowSymLinks
最后保存并退出文件,并使用以下命令重新启动apache服务器:
sudo service httpd restart
(这里有一份截图指南。)
其他回答
其中一个重要的事情是设置一个安全的apache web服务器是禁用目录浏览。默认情况下,apache已经启用了这个功能,但是最好禁用它,除非你真的需要它。 打开apache文件夹中的httpd.conf文件,找到如下所示的行:
Options Includes Indexes FollowSymLinks MultiViews
然后删除word Indexes并保存文件。重新启动apache。就是这样
完成@GauravKachhadiya的回答:
IndexIgnore *.jpg
表示“仅隐藏.jpg扩展名文件,不进行索引。
IndexIgnore指令使用通配符表达式来匹配目录和文件。
一个星号字符,它匹配字符串中的任何字符,例如:foo或foo。扩展,在下面的例子中,我们将关闭目录列表,没有文件或dirs将出现在索引中: IndexIgnore *
或者如果你想隐藏特定的文件,在目录列表中,那么我们可以使用
IndexIgnore *.php
*.php =>匹配以任何char开头并以.php结尾的字符串
上面的例子隐藏了所有以.php结尾的文件
这不是答案,只是我的经验:
在我的Ubuntu 12.04 apache2上,在apache2.conf或httpd.conf中都没有找到索引,幸运的是我在sites-available/default中找到了它。删除后,现在它看不到目录列表。可能必须为sites-available/default-ssl这样做。
如果你选择修改httpd.conf文件来解决这个问题,并且你有多个Options指令,那么你必须在每个指令之前添加一个-或+。例子:
Options -Indexes +FollowSymLinks
最好的方法是使用webserver apache2禁用它。在我的Ubuntu 14中。打开/etc/apache2/apache2.conf change from
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
to
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
然后重新启动apache:
sudo service apache2 reload
这将禁用apache2服务的所有文件夹中的目录列表。