apache-虚拟主机日志

apache-虚拟主机日志

我有一个虚拟主机设置,并且 usecanonicalname 已关闭。

我在虚拟主机中设置了 ServerName domain.com 和 ServerAlias *.domain.com。

使用 apache2 的 %v Lo​​gFormat 字符串只会捕获 domain.com,而我正尝试让它捕获 foo.domain.com,以便我可以相应地拆分日志。

我目前使用的 LogFormat 是

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

答案1

使用%{主机}i您的日志格式应该会为您提供“主机”标题的内容......这似乎就是您想要的。

引用自文档:

%{Foobar}i - Foobar 的内容:发送到服务器的请求中的标头行。其他模块(例如 mod_headers)所做的更改会影响此内容。如果您对大多数模块修改请求标头之前的请求标头感兴趣,请使用 mod_setenvif 将标头复制到内部环境变量中,并使用上面描述的 %{VARNAME}e 记录该值。

http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

希望这可以帮助。

答案2

为什么不直接在每个虚拟主机定义中粘贴单独的 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>

相关内容