为什么 Apache 忽略了“Options Indexes”指令?

为什么 Apache 忽略了“Options Indexes”指令?

我的 .conf 文件中有以下块,但是当我加载适当的 URL(指向其中仅包含虚拟 .txt 文件的目录)时,我得到的是 Apache 2 测试页面而不是目录列表。

<Directory "/var/www/sites/www.some-site.com/public">
  Options Indexes
  [...other settings that are working fine...]
</Directory>

如果我将 index.html 文件放入其中,它就会按预期加载。

我省略的“其他设置”用于 LDAP HTTP 身份验证等,它们也都按预期工作。

目录中没有.htaccess 文件。

我似乎无法使目录浏览正常工作。

我也尝试过 +Indexes,但仍然没有成功。

答案1

老板发现了这个问题。它是 conf.d/welcome.conf 文件。它有一个 LocationMatch 指令,可以检测到 index.html 文件的缺失并默认进入欢迎页面。

答案2

基本步骤:

  • 检查并确保没有 .htaccess 文件覆盖您的设置(设置 AllowOverride None 可能会有所帮助)
  • 检查并确保你的目录可以被 Apache 读取
  • 检查并确保您没有其他<directory>覆盖您设置的标志。

答案3

我在 Apache 服务器上的虚拟主机中遇到了类似的问题:我想禁用目录列表,因此我编辑了 .conf 文件并添加了 -Indexes 选项,但似乎不起作用。没有启用 .htaccess,也没有其他指令覆盖我的规则。

经过一番头疼之后,我发现了最愚蠢的原因:我有两个 .conf 文件,一个用于 http 访问,另一个用于 SSL。我当然是使用与尚未编辑的 .conf 文件相关的协议来访问该网站的

希望这可以为像我一样心不在焉的用户节省一些时间:)

相关内容