![我可以在特定域上为所有虚拟主机自动创建子域吗?](https://linux22.com/image/528421/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%89%B9%E5%AE%9A%E5%9F%9F%E4%B8%8A%E4%B8%BA%E6%89%80%E6%9C%89%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E8%87%AA%E5%8A%A8%E5%88%9B%E5%BB%BA%E5%AD%90%E5%9F%9F%E5%90%97%EF%BC%9F.png)
如果我有以下 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
。