我目前有针对静态页面和动态页面的单独访问日志。我的httpd配置文件有(内部<虚拟主机>):
<LocationMatch "^/(img|js|css|thumb|banner)/(.+)$">
SetEnv static 1
</LocationMatch>
CustomLog /var/log/apache2/gopal.log myCustom env=!static
CustomLog /var/log/apache2/gopal-static.log myCustom env=static
我想补充一下
SetEnvIf Remote_Addr "127.0.0.1" dontlog
CustomLog /var/log/apache2/gopal.log myCustom env=!dontlog
,但找不到使用 CustomLog 的示例表达式=参数并且无法猜测工作表达式:
expr=!(reqenv('static')||reqenv('dontlog'))
产生
语法错误,意外的 T_OP_OR
答案1
函数reqenv
必须与某些东西进行比较,您不能像代码那样只检查环境变量是否已设置。我承认错误消息并不是特别有启发性 :-)
以下内容应该适合您:
SetEnvIf Request_URI ^/(img|js|css|thumb|banner) static=yes
SetEnvIf Remote_Addr "127.0.0.1" dontlog=yes
CustomLog logs/access_log myCustom expr=!(reqenv('static')=='yes'||reqenv('dontlog')=='yes')