morleyc Asked: 2021-09-28 05:11:03 +0800 CST2021-09-28 05:11:03 +0800 CST 2021-09-28 05:11:03 +0800 CST Apache 选项 - 子目录的索引 772 如果我没有上传index.html ,如何防止人们查看父目录中的文件列表?如果没有 index.* 文件,我可以看到如何禁用文件列表。 我如何允许根目录的文件列表,而不是任何其他子目录? 提前致谢。 .htaccess apache2 2 个回答 Voted new-user 2021-09-28T05:40:18+08:002021-09-28T05:40:18+08:00 通常,子目录将继承您在 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> (未测试) Best Answer MrWhite 2021-09-28T07:14:14+08:002021-09-28T07:14:14+08:00 由于您标记了 question .htaccess,您可以.htaccess在 Apache 2.4 的根文件中执行以下操作: # Default - Directory listings disabled (mod_autoindex) Options -Indexes # Override - Allow directory listings for the root only <If "%{REQUEST_URI} == '/'"> Options +Indexes </If>
通常,子目录将继承您在 Apache 中应用于其父目录的相同设置。而且,据我所知,您无法更改它,并且不存在将指令范围限制为仅单个目录级别的方法。
这意味着您需要:
而不是单独为每个子目录执行此操作,而是使用
DirectoryMatch
指令执行此操作是最简单的。在您的主要 httpd.conf (或包含)集中
(未测试)
由于您标记了 question
.htaccess
,您可以.htaccess
在 Apache 2.4 的根文件中执行以下操作: