使用Apache的VirtualHostdynamicconfiguration基于文件夹结构的子域

我想要做的是dynamic创build基于用户名和子文件夹的虚拟主机,例如,如果我要创build以下文件夹:

/home/USER/www/PROJECT_FOLDER 

以下域将作为其根目录映射到上一个文件夹

 http://PROJECT_FOLDER.USER.domain.com 

除了创build一个检查新文件夹的脚本,在Apacheconfiguration中创build匹配的VirtualHost,并重新启动HTTPD之外,还有一个configuration友好的方法来完成这个任务吗?

– 编辑 – 谢谢@ kashanibuild议mod_vhost_alias。 它工作完美。

你可能想看看mod_vhost_alias。 http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

你的情况下的configuration应该看起来像这样,但我没有testing它。

 VirtualDocumentRoot /home/%2/www/%1 

和logging

 LogFormat "%V %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"" dynamic_vhosts CustomLog logs/access_log dynamic_vhosts 

这将把虚拟主机的请求进入每个日志条目的前面。 您可以调整设置的其余部分以匹配您所需的设置。 如果%V不起作用,请尝试%v。 至less用标准的Apache mod_log,我不认为有办法将其分割成单独的日志文件。

用“ServerAlias * .example.com”和虚拟用户主机RewriteRule的例子,我相信你可以很容易地设置Apache来做你想做的事情

http://httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html#uservhosts