我的 httpd-vhosts.conf 文件如下所示:
<VirtualHost *:80>
DocumentRoot "/www/foo/htdocs"
ServerName foo
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/bar/htdocs"
ServerName bar
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/baz/htdocs"
ServerName baz
</VirtualHost>
注意到这个模式了吗?有没有办法减少重复,还是我只能为每个网站设置一个单独的 VirtualHost 条目?
答案1
我建议您查看 Apache 网站上的动态虚拟主机。其他方法需要重新启动 Apache 服务器。
http://httpd.apache.org/docs/2.0/vhosts/mass.html
答案2
在阅读了 Dark Ninja 的回答后,我找到了解决方法。下面是我的 httpd-vhosts.conf 文件现在的样子。
# Dynamic virtual hosts.
# See http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html
UseCanonicalName Off
VirtualDocumentRoot /www/%0/htdocs/
我还必须通过取消注释 httpd.conf 中的此行来启用 mod_vhost_alias
LoadModule vhost_alias_module modules/mod_vhost_alias.so
答案3
有两种截然不同的答案。
- 使用“子域名作为帐户文件夹”技巧。
- 编写一个简短的脚本和配置文件,它们一起动态生成您的 httpd-vhosts.conf 文件。然后脚本和配置将成为您的主人,而 .conf 文件则是“可消耗的”。
我推荐#2,而且我认为实用程序员也可能会推荐。