在httpd.conf中操作LogFormat以去除特定的查询参数

时间:2013-09-30 11:09:50

标签: apache logging format httpd.conf

我的Web应用程序中的apache webserver具有如下所示的配置

LogFormat "%h %l %u %t \"%r\" %>s %b \
\"%{Referer}i\" \"%{User-Agent}i\""            combined
CustomLog /var/web/log/access_log combined

问题是%r显示完整的网址及其查询参数。如下所示

http://myserver/path/to/resource?q1=v1&q2=v2&secret=no-one-sould-know

是否可以以这种方式配置,以便我可以跳过在secret中记录参数access_log?或者可能通过输入或类似的方式记录此特定查询参数?

如果我可以跳过以/path/to/resource结尾的特定请求的日志记录,它也会有效。

1 个答案:

答案 0 :(得分:0)

我可以使用setEnvIf指令

来解决它
SetEnvIf Request_URI \/path\/to\/resource secret
CustomLog /var/web/log/access_log combined env=!secret

此处SetEnvIf根据请求设置env变量。因此,当在env中设置secret时,CustomLog将跳过记录。