Apache 选项 - 子目录的索引

Apache 选项 - 子目录的索引

如果我尚未上传 index.html,如何防止人们查看父目录中的文件列表?如果没有 index.* 文件,我可以看到如何禁用文件列表。

我如何允许列出根目录的文件,但不允许列出任何其他子目录?

提前致谢。

答案1

由于您标记了问题,您可以在Apache 2.4 的.htaccess根文件中执行以下操作:.htaccess

# Default - Directory listings disabled (mod_autoindex)
Options -Indexes

# Override - Allow directory listings for the root only
<If "%{REQUEST_URI} == '/'">
    Options +Indexes
</If>

答案2

通常,子目录将继承您在 Apache 中应用于其父目录的相同设置。而且,据我所知,您无法更改这一点,并且没有办法将指令的范围限制在单个目录级别。

这意味着您需要:

  • 在父目录上设置所需的选项/指令
  • 更改/覆盖/否定所有(当前和新的)子目录的选项/指令。

最简单的方法是使用DirectoryMatch指示。

在您的主 httpd.conf (或包含) 中设置

<Directory "/path/to/example.com/">
  # enable directory listings
  Options +Indexes
</Directory>


<DirectoryMatch "/path/to/example.com/.*/">
  # Disable directory listings for all sub directories of /path/to/example.com/
  Options -Indexes
</Directory>

(未经测试)

相关内容