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

/画廊索引/409 *父目录 * i1269372986681.jpg * i1269372986682.jpg * i1269372988680.jpg


当前回答

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

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

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

其他回答

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

Options -Indexes

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

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

vim /etc/httpd/conf/httpd.conf

然后找到这一行:Options Indexes FollowSymLinks

将该行更改为:Options FollowSymLinks

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

sudo service httpd restart

(这里有一份截图指南。)

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

Options -Indexes

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

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

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

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

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

删除行-选项索引FollowSymLinks

新行-选项遵循symlinks

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

Options -Indexes +FollowSymLinks