Apache不应匹配没有子域的域

Apache不应匹配没有子域的域,apache,vhosts,Apache,Vhosts,我不是一个特别好的管理员,而是一个程序员。然而,我现在需要配置这个ApacheWebServer 我有一个域abc.sub.domain.com和一个与此域匹配的VHOST。但是VHOST也匹配sub.domain.com,这只会导致Apaches默认页面,而不是在我的应用程序目录中 这是我的密码 <VirtualHost *:80> ServerName abc.sub.domain.com </VirtualHost> Include /path/to/lo

我不是一个特别好的管理员,而是一个程序员。然而,我现在需要配置这个ApacheWebServer

我有一个域
abc.sub.domain.com
和一个与此域匹配的VHOST。但是VHOST也匹配
sub.domain.com
,这只会导致Apaches默认页面,而不是在我的应用程序目录中

这是我的密码

<VirtualHost *:80>
    ServerName abc.sub.domain.com
</VirtualHost>

Include /path/to/local/config/httpd-vufind.conf

但这无助于解决我的问题
sub.domain.com
仍被路由到第一个VHOST配置中(带有include语句)。如果域匹配,我如何执行includeonly

默认情况下,apache会为任何不匹配的
ServerName
匹配第一个VirtualHost。在你的虚拟主机上添加另一个虚拟主机部分,它将捕获任何不匹配的主机。其他具有指定名称的虚拟主机将进一步添加。

如何在上面添加它们?我使用一个增敏来启用VHOST。我已经尝试使用默认的vhost作为列表中的第一个条目添加为000 default。这没有帮助。我添加了默认的VHOST配置,但无法解决问题。请尝试了解加载虚拟主机和配置文件的顺序。首先,apache加载main
httpd.conf
。如果定义了一些vHost,则第一个vHost将变为默认值,并与非exisent域的任何请求相匹配。然后apache对每个包含的文件重复这个迭代,顺序是
httpd.conf
,依此类推。在我的Debian系统上没有
httpd.conf
。当我取消注释
include
时,一切正常(目标软件除外)。
include
似乎已执行,但其服务器名不匹配。可能是因为它不在
语句中。非常感谢。在
apache2.conf
中包含VHOST配置(在包含VHOST目录之前)有帮助
<VirtualHost *:80>
    ServerAdmin my@email.com
    ServerName sub.domain.com   
    DocumentRoot /var/www
    <Directory /var/www>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>