我不是一个特别好的管理员,而是一个程序员。不过我现在需要配置这个apache webserver。
我有一个域abc.sub.domain.com
和一个与此域匹配的VHOST。但VHOST也匹配sub.domain.com
,它应该只是导致Apaches默认页面而不是我的应用程序目录。
这是我的conf
<VirtualHost *:80>
ServerName abc.sub.domain.com
</VirtualHost>
Include /path/to/local/config/httpd-vufind.conf
(开源)应用程序在环境变量上构建其整个配置,这就是我需要包含此conf文件的原因。无论域名如何,此文件似乎始终包含在内。
现在,我希望在不完全匹配的域中禁用此包含。
然后,我想设置一个仅与sub.domain.com
匹配的默认VHOST。在这个领域phpMyadmin和类似的工具应该工作。
以下是我的默认VHOST的样子。在sites-anebled it's called
000-default`下,位于第一个位置。
<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>
但这无助于解决我的问题。 sub.domain.com
仍然被路由到第一个VHOST配置(带有include语句)。如果域匹配,我如何才能执行仅?
答案 0 :(得分:0)
默认情况下,apache匹配任何不匹配的ServerName
的第一个VirtualHost。在您的上面添加另一个VirtualHost部分 ,它将捕获任何不匹配的主机。其他具有指定名称的VirtualHosts会进一步增加。