我有一个带有 *.example.com 的 Apache 2.2 VirtualHost ServerName
。这是我的场景所必需的,所有子域都由同一个站点处理。
现在,在访问日志中,我试图找出一个LogFormat
变量(或方法),让我记录要求域名。如果我使用该vhost_combined
格式,我的访问日志中得到的只是 *.example.com 条目,而不是实际的 vhost要求。
有人知道怎么做吗?
答案1
您可以使用%{headername}i
将任何标头的内容放入 LogFormat 指令中,这样%{Host}i
就会为您提供客户端在请求的 Host: 标头中放入的内容,从而为您提供您想要的内容。
请参阅文档http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
答案2
当您使用例如vhost_combined
Logformat 时:
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
您可以vhost_combined
通过添加进行调整%{Host}i
,例如
LogFormat "%v:%p %h %l %u %t %{Host}i \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined