语境
我为大量虚拟主机配置了 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.so
在 httpd.conf
我错过了什么愚蠢/明显的东西?
最佳答案
如 here 所述,直到 2.2.16 才引入 FallbackResource 指令。升级 Apache 应该可以解决您的问题。
关于apache - 使用 FallbackResource 和大量 vhost 配置的 HTTP 500,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20897008/