apache CustomLog 具有多个环境吗?

apache CustomLog 具有多个环境吗?

我有2个CustomLog语句:

# SVN-ACTION is default env
CustomLog logs/svn_access_log common env=SVN-ACTION
SetEnvIf Request_Method GET GET-ACTION
CustomLog logs/get_access_log common env=GET-ACTION

这可行,但是下面的 CustomLog 语句不起作用...它会打印出错误:

CustomLog logs/ssl_access_log common env=!GET-ACTION env=!SVN-ACTION

如何在 CustomLog 中使用多个环境条件?

答案1

用这个:

CustomLog logs/ssl_access_log common \ "expr=(-z reqenv('GET-ACTION') && -z reqenv('SVN_ACTION'))"

整个第三个参数似乎需要双引号。仅引用“=”的右侧是不够的。

语法已使用 2.4.34 版本测试。

答案2

在 Apache 2.4 中,您可以使用表达

例如:

CustomLog logs/ssl_access_log common \
  "expr=-z reqenv('GET-ACTION') && -z reqenv('SVN_ACTION')"

相关内容