Apache 中的动态虚拟主机

Apache 中的动态虚拟主机

我的 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

有两种截然不同的答案。

  1. 使用“子域名作为帐户文件夹”技巧。
  2. 编写一个简短的脚本和配置文件,它们一起动态生成您的 httpd-vhosts.conf 文件。然后脚本和配置将成为您的主人,而 .conf 文件则是“可消耗的”。

我推荐#2,而且我认为实用程序员也可能会推荐。

相关内容