带有通配符/非通配符子域混合的Apache配置

时间:2010-06-03 19:11:30

标签: apache wildcard

我有域名,我们称之为“mydomain.com”,我希望以下虚拟主机设置为以下列方式解决:

  • mydomain.com / www.mydomain.com指向/ var / www /
  • dev.mydomain.com指向/ var / www / dev /
  • * .mydomain.com(所有其他子域名)指向/ var / www / old

我的apache配置目前设置为:

NameVirtualHost 1.2.3.4:80

<VirtualHost 1.2.3.4:80>
 ServerAlias *.mydomain.com
 DocumentRoot /var/www/old
</VirtualHost>

<VirtualHost 1.2.3.4:80>
 ServerName mydomain.com
 ServerAlias www.mydomain.com
 DocumentRoot /var/www
</VirtualHost>

<VirtualHost 1.2.3.4:80>
 ServerAlias dev.mydomain.com
 DocumentRoot /var/www/dev
</VirtualHost>

不幸的是,这不符合我的预期。使用此配置,只有第一个(通配符)VirtualHost条目正常工作。

配置Apache执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

将通配符条目放在文件的最后。 Apache将使用与浏览器发送的主机头匹配的第一个VirtualHost。