我可以在特定域上为所有虚拟主机自动创建子域吗?

我可以在特定域上为所有虚拟主机自动创建子域吗?

如果我有以下 Apache 配置和通配符 *. s1.ex.com 指向服务器

<VirtualHost *>
ServerName example.com
DocumentRoot /var/www/example.com
</VirtualHost>

<VirtualHost *>
ServerName example.net
DocumentRoot /home/user2/web/example.net
</VirtualHost>

是否可以让域名自动example.com.s1.ex.com example.net.s1.ex.com指向它们各自的虚拟主机?

编辑:我正在寻找一种可以自动执行与我手动添加 ServerAlias 相同的操作的解决方案。

答案1

您可以添加 ServerAlias:

<VirtualHost *>
ServerName example.com
ServerAlias example.com.s1.ex.com
DocumentRoot /var/www/example.com
</VirtualHost>

<VirtualHost *>
ServerName example.net
ServerAlias example.net.s1.ex.com
DocumentRoot /home/user2/web/example.net
</VirtualHost>

答案2

答案3

我想你想要mod_vhost_alias

LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so
<VirtualHost *>
  VirtualDocumentRoot /var/www/%-5.0.%-4
</VirtualHost>

例如.com.s1.ex.com现在由 提供服务/var/www/example.com

相关内容