Apache不会自动索引

时间:2016-12-27 17:40:23

标签: apache httpd.conf

  • Oracle Linux 7.3(RHEL派生)
  • Apache 2.4.6

我正在/ srv / www中为yum,scripts和kickstart文件设置一个存储库,通过httpd提供。我想要一个自动索引,所以我没有任何index.html。而且,这是内部服务器唯一能做的事情。那么,httpd.conf:

DocumentRoot "/srv/www"

<Directory "/srv/www">
  AllowOverride all
  Options Indexes FollowSymLinks
  Require all granted
</Directory>

但是,我仍然收到错误消息:

[autoindex:error] [pid 12345] [client <IP address>:<port>] AH01276: Cannot serve directory /srv/www: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive.

除了Options指令允许自动索引!我试过了Options All。我试过了Options +Indexes +FollowSymLinks。我看了7或8次Google点击。没有什么工作。

设置LogLevel debug不会增加消息传递。

我错过了什么?

4 个答案:

答案 0 :(得分:3)

如上所述here,在没有index.html(或其他已配置的索引文件)的情况下,/etc/httpd/conf.d/welcome.conf配置的欢迎页面将优先于其{{1}的其他配置指令。重命名该文件,使其不会在LocationMatch中结束并自动编制索引。

答案 1 :(得分:0)

显然在没有启用索引的情况下登陆另一个虚拟主机或目录,或者.htaccess妨碍了。

首先设置“AllowOverride none”,因为如果你没有使用任何.htaccess文件,那么将它激活是荒谬的(并且因为你可以访问主服务器,所以你不需要它)。设置AllowOverride后,如果最近添加了索引并且未重新启动以应用更改,请重新启动服务器。

如果问题仍然存在,请运行apachectl -S并确保您登陆正确的虚拟主机。

答案 2 :(得分:0)

我只想添加一下,将Mac更新为Catalina之后,我的Apache停止工作并出现相同的错误。 我必须:

  • 取消注释所需的模块(php7,重写,目录等...)
  • 在选项(mocks.js)中添加module.exports = { response: { body: { ... } } } 标记

这对我有用。

答案 3 :(得分:0)

解决办法: 确保两个 apache 模块正在运行:

  1. mod_autoindex.so
  2. mod_dir.so

就您而言,mod_autoindex.so 正在运行。现在启用第二个。

PS:保留Options -Indexes。这一点很重要。它确保禁用目录列表,因为您不应该允许任何人访问您服务器上的每个目录(有些具有相当私密的内容,例如 CMS 的目录)。