![apache-虚拟主机日志](https://linux22.com/image/499020/apache-%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%97%A5%E5%BF%97.png)
我有一个虚拟主机设置,并且 usecanonicalname 已关闭。
我在虚拟主机中设置了 ServerName domain.com 和 ServerAlias *.domain.com。
使用 apache2 的 %v LogFormat 字符串只会捕获 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>