我的硬盘上的 /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 服务器),因此我可以轻松地使用本地区域来实现此类目的。