所有域名的通配符子域名

所有域名的通配符子域名

所以我现在 (对于每个域) 有的是这个

<VirtualHost *:80> 

  ServerName exmaple.com
  ServerAlias *.example.com

  DirectoryIndex index.php index.html
  VirtualDocumentRoot /srv/www/example.com/public_html/%0

</VirtualHost>

但我想通过以下方式避免在另一个域中重复此操作

<VirtualHost *:80> 

  ServerName *
  ServerAlias *

  DirectoryIndex index.php index.html
  VirtualDocumentRoot /srv/www/%2+/public_html/%0

</VirtualHost>

%2+ 除子域名外全部为空。这可能吗……

答案1

只要您只有单级子域名,那么这种方法就行。如果您想通过 提供所有页面mod_vhost_alias,只需VirtualDocumentRoot从指令中删除该行<VirtualHost>,然后删除所有<VirtualHost>指令。

您无需指定通配符ServerName。它无论如何都需要 FQDN,因此您无论如何都不能使用它。与 类似ServerAlias,由于VirtualDocumentRoot负责查找提供页面的正确位置,因此无需使用,因为Host:标头将被动态处理。

阅读文档mod_vhost_alias动态配置的海量虚拟主机应有助于消除任何剩余的困惑。

相关内容