我的 .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 文件相关的协议来访问该网站的
希望这可以为像我一样心不在焉的用户节省一些时间:)