5

I currently have separate access logs for static and dynamic pages. My httpd.conf has (inside <VirtualHost>):

<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

I would like to complement it with

SetEnvIf Remote_Addr "127.0.0.1" dontlog
CustomLog /var/log/apache2/gopal.log myCustom env=!dontlog

, but cannot find an example of using CustomLog expr= parameter and cannot guess a working expression: expr=!(reqenv('static')||reqenv('dontlog')) produces

syntax error, unexpected T_OP_OR

1 Answer 1

8

The reqenv function must be compared against something, you cannot just check for the environment variable to be set or not as your code tries to. I admit the error message is not particularly enlightening :-)

The following should work for you:

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')

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .