我想CustomLog
在我的 apache 配置中添加一个指令,以记录请求的完整 URL(或至少是 URL 的主机部分)。我有多个域由同一个 apache 实例处理,并且希望能够在日志中区分这些域(因为现在我看到的只有“GET /”)。我看到LogFormat 文档它列出了%U
打印 URL 的路径部分,但我正在寻找主机。
答案1
继续阅读LogFormat
文档,你会发现:
%...{Foobar}i: The contents of Foobar: header line(s) in the request
sent to the server.
这意味着您可以在配置中包含:
%{Host}i
%v
和指令%V
也可能让您得到您想要的东西。
ServerName
%v 将始终是(虚拟主机的“规范名称”) 的值。%V
可能是 的值ServerName
,也可能是 HTTPHost
标头的值,具体取决于您是否UseCanonicalName
在配置中启用了该选项(以及客户端是否提供了Host
标头)。
答案2
LogFormat“%h%l%u%t \“%r\”%>s%b \“%{Referer}i\” \“%{User-Agent}i\”%{Host}i%U%q”组合
%{Host}i%U%q
提供完整的网址。
答案3
'%v' 可能是您想要的 ServerName?
答案4
添加%v
到您的日志格式。
像这样:
LogFormat "%v - %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined-vhost
CustomLog /log/file/location combined-vhost