Apache CustomLog 记录完整 URL

Apache CustomLog 记录完整 URL

我想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

相关内容