web-dev-qa-db-ja.com

Apache CustomLogに一度に2つの条件を課す方法は?

現在、静的ページと動的ページに別々のアクセスログがあります。私のhttpd.confは(内部<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
_

補足したい

_SetEnvIf Remote_Addr "127.0.0.1" dontlog
CustomLog /var/log/Apache2/gopal.log myCustom env=!dontlog
_

、ただしCustomLog expr =パラメータの使用例を見つけることができず、実際の式を推測できません:expr=!(reqenv('static')||reqenv('dontlog'))

構文エラー、予期しないT_OP_OR

5
mkaama

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