是否有指令将没有索引文件的目录列表显式设置为 403 Forbidden?默认行为返回 404,因为mod_dir找不到索引文件。
我没有加载mod_autoindex并Options
设置为FollowSymLinks
. 我试过-Indexes
了,但仍然返回 404。
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm
DirectorySlash On
</IfModule>
<Directory /var/www>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
没关系,但我使用的是 Apache 2.4。
经过大量试验和错误后回答我自己的问题。这个答案应该适用于 Apache >= 2.0。
总之,
Indexes
该指令的选项似乎Options
需要mod_autoindex。您现在可以停止阅读,除非您想了解有关默认 Apache 行为的更多信息。更多信息
关键是是否加载了 mod_autoindex。如果未加载,设置
Options -Indexes
将无效并返回 404,这是有道理的,因为 mod_dirDirectoryIndex
指令找不到您的索引文件。如果已加载,设置Options -Indexes
将返回 403。这在Indexes下的Apache Options 文档中有所解释,这有点令人困惑,因为它是 mod_core 的一部分。
Options
...并在mod_autoindex页面上进行了解释:
我的测试表明启用/禁用 .htaccess 文件
AllowOverride
是无关紧要的。