如何禁用目录浏览?

我想禁用目录浏览/画廊文件夹和所有子目录

/画廊索引/409

* Parent Directory
* i1269372986681.jpg
* i1269372986682.jpg
* i1269372988680.jpg
477486 次浏览

创建一个包含以下行内容的.htaccess文件:

Options -Indexes

这是一种选择。另一种选择是编辑apache配置文件。

为了做到这一点,你首先需要用命令打开它:

vim /etc/httpd/conf/httpd.conf

然后找到这一行:Options Indexes FollowSymLinks

将该行更改为:Options FollowSymLinks

最后保存并退出文件,并使用以下命令重新启动apache服务器:

sudo service httpd restart

(你有一个截图指南在这里。)

/galerias中编辑/创建一个.htaccess文件:

Options -Indexes

目录浏览是由mod_autoindex模块提供的。

其中一个重要的事情是设置一个安全的apache web服务器是禁用目录浏览。默认情况下,apache已经启用了这个功能,但是最好禁用它,除非你真的需要它。 打开apache文件夹中的httpd.conf文件,找到如下一行:

Options Includes Indexes FollowSymLinks MultiViews

然后删除word Indexes并保存文件。重新启动apache。就是这样

.htaccess中试试这个:

IndexIgnore *.jpg

这不是答案,只是我的经验:

在我的Ubuntu 12.04 apache2上,没有在apache2.conf或httpd.conf中找到Indexes,幸运的是我在sites-available/default中找到了它。删除后,现在它看不到目录列表。可能必须为sites-available/default-ssl这样做。

最好的方法是使用webserver apache2禁用它。在我的Ubuntu 14中。打开/etc/apache2/apache2.conf change from

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>

然后重新启动apache:

sudo service apache2 reload

这将禁用apache2服务的所有文件夹中的目录列表。

完成@GauravKachhadiya的回答:

IndexIgnore *.jpg

意思是“只隐藏jpg扩展文件索引。

IndexIgnore指令使用通配符表达式来匹配目录和文件。

  • 一个星号字符,它匹配字符串中的任何字符,例如:foo或foo。扩展,在下面的例子中,我们将关闭目录列表,没有文件或dirs将出现在索引中:

    IndexIgnore * < / p >

或者如果你想隐藏特定的文件,在目录列表中,那么我们可以使用

IndexIgnore *.php

*.php =>匹配以任何char开头并以.php结尾的字符串

上面的例子隐藏了所有以.php结尾的文件

你可以将一个名为index.html的空文件放到你不想列出的每个目录中。这有几个优点:

  • 它(通常)不需要在服务器上进行任何配置。
  • 它将继续工作,即使服务器管理员决定在服务器配置中使用“AllowOverride None”。(如果你使用.htaccess文件,这可能会导致大量的“错误500 -内部服务器错误”消息给你的用户!)
  • 它还允许您将文件从一个服务器移动到另一个服务器,同样不需要打乱apache配置。

理论上,自动索引可能由不同的文件触发(这由DirectoryIndex选项控制),但我还没有在现实世界中遇到这种情况。

除了上述两种方法(编辑/etc/apache2/apache2.conf或在.htaccess文件中添加选择索引),这里还有另一种方法

a2dismod autoindex

之后重新启动apache2服务器

sudo service apache2 restart

把这个添加到你的。htaccess文件中:

Options -Indexes

如果因为任何原因不能工作,在你的。htaccess文件中试试这个:

IndexIgnore *

如果你选择修改httpd.conf文件来解决这个问题,并且你有多个Options指令,那么你必须在每个指令之前添加一个-或+。例子:

Options -Indexes +FollowSymLinks

打开你的.htaccess文件,输入以下代码

Options -Indexes

确保在输入“选项-索引”后按下回车键(如果你用的是Mac电脑,则按下回车键),这样文件就会以空行结束。

在目录部分(/etc/httpd/httpd.conf)

删除行- Options Indexes FollowSymLinks

换行- Options FollowSymLinks

我用虚拟主机找到了另一种方法:

<VirtualHost *:80>
DocumentRoot C:/WAMP/Apache24/htdocs/
ServerName vehiclesspares.com
<Directory C:/WAMP/Apache24/htdocs/vehiclesspares.com>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
这适用于我在Apache 2.4.54在我的本地windows机器上的主机文件(C:\ windows \System32\drivers\etc\hosts)包含以下行: 127.0.0.1 vehiclesspares.com 这个配置在docroot下也有vehiclesspares.com: C:\WAMP\Apache24\htdocs\vehiclesspares.com