我有dynamicconfiguration的虚拟主机:
UseCanonicalName Off <VirtualHost *:80> ServerAlias *.projects.domain.com VirtualDocumentRoot /var/www/projects/%-4 </VirtualHost> <VirtualHost *:80> ServerAlias *.testing.domain.com VirtualDocumentRoot /var/www/testing/%-4 </VirtualHost>
当我input浏览器xxx.projects.domain.com或yyy.testing.domain.com时,它工作正常但是:
它不适用于CNAMElogging。 例如: xyz.com => abc.projects.domain.com 。
如何configurationApachedynamicselect虚拟主机根据parsing的DNS名称( abc.projects.domain.com ),而不是根据HTTP HOST头( xyz.com ),而不插入xyz.com到Apacheconfiguration?
它不适用于CNAMElogging。
CNAME只会告诉它使用与目标相同的DNSlogging,但它不会告诉您的HTTP服务器(Apache),当它看到CNAME域时,应该将其视为与CNAME目标相同。
有几个选项,但基本上你需要指定xyz.com是abc.projects.domain.com的别名。
这里列出的几个选项可能适合你。 例如,请参阅“使用单独的虚拟主机configuration文件”。
我遇到过类似的情况,最后我为我的所有域名生成了正确的vhostconfiguration,包括使用Chef的别名。 我发现它比试图dynamic更简单,更强大。
如果你不喜欢重复的VirtualHostconfiguration,那么有另外一个select使用符号链接 。
对于您的每个项目或testing创build符号链接到相应的客户的域名,例如
ln -l /var/www/projects/abc /var/www/links/xyz.com ln -l /var/www/projects/abc /var/www/links/abc.projects.domain.com
然后这样configurationVirtualHost:
<VirtualHost *:80> ServerAlias *.projects.domain.com VirtualDocumentRoot /var/www/links/%0 </VirtualHost>
因此,您的网站将同时使用xyz.com和abc.projects.domain.com。 唯一必须自动化的 (例如通过cron)是创build符号链接。