【问题标题】:Apache won't autoindexApache不会自动索引
【发布时间】:2017-05-12 00:08:55
【问题描述】:
  • Oracle Linux 7.3(RHEL 衍生产品)
  • Apache 2.4.6

我正在 /srv/www 中为 yum、脚本和 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 不会增加消息传递。

我错过了什么?

【问题讨论】:

  • 您的 /srv/www 目录中是否有(有些隐藏的).htaccess ?
  • 不,它只是 RPM 包、脚本和 kickstart。问题原来是welcome.conf

标签: apache httpd.conf


【解决方案1】:

here 所述,在没有index.html(或其他配置的索引文件)的情况下,在/etc/httpd/conf.d/welcome.conf 配置的欢迎页面将通过其LocationMatch 指令优先于其他配置。重命名文件,使其不以.conf 结尾,并且自动索引有效。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我只想补充一点,在将我的 mac 更新到 Catalina 后,我的 apache 停止工作并出现同样的错误。 我不得不:

      • 取消注释所需模块(php7、rewrite、目录等...)
      • 在选项中添加+ 符号 (Options +FollowSymLinks +Multiviews +Indexes)

      这对我有用。

      【讨论】:

        【解决方案4】:

        解决方案: 确保两个 apache 模块正在运行:

        1. mod_autoindex.so
        2. mod_dir.so

        在您的情况下,mod_autoindex.so 正在运行。现在启用第二个。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-08
          • 2021-06-03
          • 2016-07-17
          • 2013-08-07
          • 2020-09-24
          • 1970-01-01
          • 2010-10-24
          相关资源
          最近更新 更多