在具有现有有效子域的域上设置通配符全部虚拟主机

我正在尝试configuration我的Apache实例来支持各种各样的域结构。

我想要根域,即:example.com和所有* .example.com被定向到一个特定的DocumentRoot。 不过,我有一个警告,我有现有的子域。 即:sub1.example.com sub2.example.com以及sub1.something.example.com,它们具有不同的不同的相应DocumentRoot(除了以sub1开头的情况(例如))。

什么是一个理智的方式来configuration这个? 这甚至有可能吗?

Apache将search从第一个定义的虚拟主机到最后定义的虚拟主机的Host:头中提供的主机名。 使用匹配的第一个虚拟主机。 如果没有匹配,则使用第一个定义的虚拟主机作为默认虚拟主机。

在为example.com定义catchall之前,您应该定义现有的虚拟主机。 你最后定义的虚拟主机应该是你的默认值。 请记住, ServerName不能包含通配符,而ServerAlias可以。