apache – 虚拟主机日志logging

我有一个虚拟主机设置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>