我有一个虚拟主机设置closuresusecanonicalname。
我有ServerName domain.com设置和ServerAlias * .domain.com虚拟主机中。
使用apache2的%v LogFormatstring将只捕获domain.com,并试图让它捕获foo.domain.com,所以我可以相应地拆分日志。
我目前使用的LogFormat是
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
在你的日志格式中使用%{Host}我应该给你“主机”头的内容…这似乎是你想要的。
从文档引用:
%{Foobar} i – 发送到服务器的请求中Foobar:标题行的内容。 其他模块(例如mod_headers)所做的更改会影响到这一点。 如果您对大多数模块修改之前的请求头有兴趣,可以使用mod_setenvif将头复制到内部环境variables中,并使用上述的%{VARNAME} elogging该值。
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
希望这可以帮助。
为什么不把一个单独的CustomLog和ErrorLog指令粘贴到每个虚拟主机定义中?
<VirtualHost *:80> ServerAdmin webmaster@place DocumentRoot /var/www/hosted/place/root ServerName www.place AddHandler cgi-script .pl CustomLog /var/www/hosted/place/logs/access_log combined ErrorLog /var/www/hosted/place/logs/error_log </VirtualHost>