1

是否可以在 apache 中以日志条目的实际格式调用条件格式?

例如,我当前的访问日志格式如下所示:

0.0.0.0 - - %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %V %A

我最后有“%A”的原因是查看他们是否通过 ipv6 或 ipv4 地址访问该站点(不记录用户 ip)。我的问题是,是否可以这样做,而不是编写所使用接口的实际 ip,而只是编写“v4”或“v6”?

我知道这可以作为后期处理完成,但我想知道是否可以“即时”这么说。

当前使用 Apache/2.2.16

4

1 回答 1

1

我的问题是,是否可以这样做,而不是编写所使用接口的实际 ip,而只是编写“v4”或“v6”?

好吧,那里没有复杂的“if-else”构造。

但是您可以尝试预先设置一个环境变量 - 然后通过%{VARNAME}e.

SetEnvIf Server_Addr 127\.0\.0\.1 IP_VERSION=v4
SetEnvIf Server_Addr /*whatevertheipv6addresslookslikeasregexp*/ IP_VERSION=v6

并在您的日志格式规范%{IP_VERSION}e中记录该变量的内容。

(未经测试,只是从文档中推断出来的。不保证。)

于 2013-03-17T16:31:51.203 回答