语境

我为大量虚拟主机配置了 Apache 2.2.15,如下所示:

<VirtualHost *:80>
    # ...irrelevant lines omitted
    VirtualDocumentRoot /srv/www/%-3+
    ServerName example.com
    ServerAlias localhost
</VirtualHost>
mkdir /srv/www/foo 使 foo.example.com 可用。


问题

foo.example.com 只包含 .htaccess 指令位于 vhost 文档根目录中时,所有 FallbackResource 的 HTTP 500。注释掉 FallbackResource 会消除错误,但我想使用 FallbackResource


尝试过的东西

我确认使用 httpd -M | grep dir_module 加载了相关模块。奇怪的是,我仍然在错误日志中看到 Invalid command 'FallbackResource', perhaps misspelled or defined by a module not included in the server configuration

文件系统尽可能简单。只有一个“Hello, World” index.php 和一个 .htaccess 。是的,权限没问题。
/srv/www
    foo
        index.php <- 775, owned by apache
        .htaccess <- 664, owned by apache

我在 .htaccess 中尝试了以下各项:
  • FallbackResource index.php
  • FallbackResource /index.php
  • FallbackResource foo/index.php
  • FallbackResource /foo/index.php

  • 也尝试过 <Directory /srv/www/foo> 即使无论如何都行不通。

    新的东西尝试给出下面的评论
  • AllowOverride Indexes 在进入 AllowOverride not allowed here 容器时引发 <VirtualHost>
  • 确认 LoadModule dir_module modules/mod_dir.sohttpd.conf

  • 我错过了什么愚蠢/明显的东西?

    最佳答案

    here 所述,直到 2.2.16 才引入 FallbackResource 指令。升级 Apache 应该可以解决您的问题。

    关于apache - 使用 FallbackResource 和大量 vhost 配置的 HTTP 500,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20897008/

    10-13 02:48