我已经玩了几个小时了,得出的结论是询问某人可能是最好的前进方式!
我有一个相当开箱即用的 apache 安装(我添加了 mod_security 和 mod_python)所以没有触及 /etc/httpd/conf/httpd.conf
我有许多域都以 's 运行,并且每个域都有自己的配置文件。它们都按预期工作,除了任何无法识别的主机名都将提供来自第一个虚拟主机的内容(我知道这是预期的行为,因为提供了来自第一个虚拟主机的内容)
如果有人通过未知的主机名访问我的服务器,我想设置一组默认的内容 - 但是这样做,第一个站点现在也提供这个我似乎找不到原因的默认内容。
各个站点的所有配置文件都位于 /etc/httpd/conf.d/sites 中(因此不会自动包含),然后通过文件(/etc/httpd/conf.d/sites我创建的.conf) - 在尝试设置默认服务器之前,它的内容是这样的:
Include conf.d/sites/*.conf
我将其修改为这样以尝试使默认服务器正常工作:
<VirtualHost _default_:80>
DocumentRoot /home/sites/DEFAULT
<Directory "/home/sites/DEFAULT">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Include conf.d/sites/*.conf
只是为了重申这个问题——当 sites.conf 的第二个版本处于活动状态时,第一个 VirtualHost 也提供此内容;其余的都很好。所有站点的配置文件在语法上都是正确的,并且在 ServerNames 中没有拼写错误。
(作为参考,我已经包含了违规站点的配置文件 - 存储在 /etc/httpd/conf.d/sites/DOMAIN.clintonmontague.co.uk.conf 中)
<VirtualHost *:80>
DocumentRoot /home/sites/clintonmontague.co.uk/www
ServerName clintonmontague.co.uk
LogLevel emerg
CustomLog /home/sites/clintonmontague.co.uk/_logs/access_log "combined"
<Directory "/home/sites/clintonmontague.co.uk/www">
AllowOverride none
allow from all
Options +Indexes
</Directory>
</VirtualHost>
抱歉问题太长了!
其他信息:Apache 2.2、CentOS 5、MediaTemple (dv)