/etc/hosts 和 Apache VirtualHosts 的通配符

/etc/hosts 和 Apache VirtualHosts 的通配符

我的硬盘上的 /var/workspace/www/ 中的 Web 项目结构如下:

firstdomain_com
 \- www
 \- anysubdomain
seconddomain_com
 \- dev
 \- api
 \- www

我需要在本地机器上运行所有这些应用程序(并且能够正确使用.htaccess),因此我需要设置我的 /etc/hosts 和 /etc/apache2/sites-enabled/*:

/etc/hosts

::1     ip6-localhost ip6-loopback www_firstdomain_com.local 

任何子域名_第一个域名_com.local

/etc/apache2/sites-enabled/*

<VirtualHost www_firstdomain_com.local:80>
    DocumentRoot /var/workspace/www/firstdomain_com/www
    ...
</VirtualHost>
<VirtualHost anysubdomain_firstdomain_com.local:80>
    DocumentRoot /var/workspace/www/firstdomain_com/anysubdomain
    ...
</VirtualHost>

如果存在很多(子)域名,这似乎很无趣且无效。

是否可以同时设置 Apache 和 /etc/hosts 以便能够自动处理此类请求,而无需手动将每个主机分别写入 /etc/hosts 和 apache conf?有没有办法在两个配置文件中设置某种“通配符”或正则表达式?

答案1

Apache 在主题下介绍了这一点动态配置的海量虚拟主机发现于:
http://httpd.apache.org/docs/2.2/vhosts/mass.html

遗憾的是您不能使用通配符/etc/hosts。我个人在机器上使用本地named(DNS 服务器),因此我可以轻松地使用本地区域来实现此类目的。

相关内容