具有多个文档根的Apache 2.2 mod-vhost-alias

我是一个初学者在与Apache的工作,需要你的帮助。 我的任务是build立一个dynamic的networking服务器(Debian 6.0.4,Apache 2.2,一个公共的IP),可以承载多个网站和文件(如图片,PDF等)预览的目的。

现在我的问题是,我需要两个不同的文档根。 一个用于网站,另一个用于文件。

我尝试使用mod-vhost-alias,所以我不需要为每个虚拟主机在httpd.conf中添加一个新条目。

我的httpd.conf如下所示:

UseCanonicalName Off NameVirtualHost 192.168.10.45 <VirtualHost preview.example.com> Servername *. preview.example.com VirtualDocumentRoot /srv/www/%1/htdocs </VirtualHost> <VirtualHost websites. preview.example.com > Servername *.websites. preview.example.com VirtualDocumentRoot /srv/www/websites/%1/htdocs </VirtualHost> 

第一个虚拟主机提供的文件和正常工作。 第二个应该提供包含网站数据的目录。 如果我停用第一个虚拟主机,子域“网站”下面的网站只能访问。

我必须做什么,使他们两个同时工作?

如果这个话题已经处理,请给我一个链接。

感谢您的时间和精力。

您需要使用ServerAlias而不是ServerName作为通配符条目。 ServerName不支持通配符。 但是,你仍然应该有一个ServerName设置。

你的<VirtualHost>定义也需要完全匹配你的NameVirtualHost指令。

沿着这些线路的东西:

 NameVirtualHost 192.168.10.45:80 <VirtualHost 192.168.10.45:80> ServerAliast preview-vhost ServerName *.preview.example.com VirtualDocumentRoot /srv/www/%1/htdocs </VirtualHost> <VirtualHost 192.168.10.45:80> ServerAlias websites-vhost ServerName *.websites.preview.example.com VirtualDocumentRoot /srv/www/websites/%1/htdocs </VirtualHost>