如何禁用目录浏览?

art*_*prs 226 apache .htaccess

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

/ galerias指数/ 409

* Parent Directory
* i1269372986681.jpg
* i1269372986682.jpg
* i1269372988680.jpg
Run Code Online (Sandbox Code Playgroud)

sti*_*pie 395

使用以下内容创建.htaccess文件:

Options -Indexes
Run Code Online (Sandbox Code Playgroud)

  • 这甚至可以在实际的.conf文件中的<Directory>或<Location>中使用 (14认同)
  • 请注意,`.htaccess`可能会被关闭.请检查`AllowOverride`指令.如果设置为"None",则关闭".htaccess".您可以通过设置`AllowOverride All`来打开它.更确切地说,"All"表示所有Apache指令. (7认同)
  • 如果你能控制http.conf,那就更好了.htaccess受到性能影响 (2认同)

Dun*_*ung 283

执行此操作的最佳方法是使用webserver apache2禁用它.在我的Ubuntu 14.X中 - 打开/etc/apache2/apache2.conf更改

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后重启apache:

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

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

  • 'sudo service apache2**reload**'就足够了! (11认同)
  • "选项 - 索引"对我有用. (8认同)
  • @Jay我也试过"选项 - 索引",但Apache不会开始后记.我正在运行服务器版本:Apache/2.4.18(Ubuntu).但是,根据Dung的回答,使用"Options FollowSymLinks".我只是好奇你正在运行什么版本的Apache和OS?也许这是一个版本的东西? (2认同)
  • 将`Options -Indexes FollowSymLinks`添加到httpd.conf后运行`apachectl configtest`会出现以下错误:“所有选项都必须以+或-开头,否则就没有选项。” 因此,工作将是`Options -Indexes + FollowSymLinks`。 (2认同)

jus*_*tyy 41

除了前面提到的两种方法(编辑/etc/apache2/apache2.conf或在.htaccess文件中添加选项 - 索引),这是另一种方法

a2dismod autoindex
Run Code Online (Sandbox Code Playgroud)

之后重启apache2服务器

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用`a2dismod -f autoindex`来执行_non-blocking_命令. (3认同)

Álv*_*lez 28

使用以下内容编辑/创建.htaccess文件/galerias:

Options -Indexes
Run Code Online (Sandbox Code Playgroud)

目录浏览由mod_autoindex模块提供.


Mar*_*.H. 23

您可以将一个空文件index.html放入您不希望列出的每个目录中.这有几个好处:

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

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


Sar*_*oev 17

其中一个重要的事情是设置安全的apache web服务器是禁用目录浏览.默认情况下,apache启用了此功能,但除非您确实需要它,否则始终禁用它.在apache文件夹中打开httpd.conf文件,找到如下所示的行:

Options Includes Indexes FollowSymLinks MultiViews
Run Code Online (Sandbox Code Playgroud)

然后删除单词索引并保存文件.重启apache.而已


pac*_*tie 5

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

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


小智 5

如果您选择修改httpd.conf文件来解决此问题,并且您有多个Options指令,则必须在每个指令之前添加 - 或+.例:

选项-Indexes + FollowSymLinks