我的 .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 ,但仍然没有运气。
老板发现了问题。它是 conf.d/welcome.conf 文件。它有一个 LocationMatch 指令,检测到没有 index.html 文件并默认为欢迎页面。
基本步骤:
<directory>
标志覆盖您的设置。我在 Apache 服务器上的虚拟主机中遇到了类似的问题:我想禁用目录列表,所以我编辑了 .conf 文件,添加了 -Indexes 选项,但它似乎不起作用。没有启用 .htaccess,也没有其他指令覆盖我的规则。
经过一番头疼后,我发现了最愚蠢的原因:我有两个 .conf 文件,一个用于 http 访问,另一个用于 SSL。我当然是使用与仍未编辑的 .conf 文件相关的协议访问该站点
希望这将为像我这样的另一个分心的用户节省一些时间:)