ApacheのSetEnvIfで間違った正規表現が拡散してる件

最近、自分のサイトを自宅サーバに移行したのだが、アクセスログファイルにcssや画像のログも記録されていてウザい。

って事でコンフィグを弄る。

SetEnvIf Request_URI "\.(jpg|png|gif|css|js)$" nolog
CustomLog /var/log/apache2/access_log combined env=!nolog

ところで「SetEnvIf CustomLog」とかで検索すると、こいつの解説をしているサイトがいくつか出てくるんだけど、何故かどのサイトでも正規表現が

"\.(jpg)|(png)|(gif)$"

となってる。この正規表現は、Request_URIが「.jpgという文字列を含む、またはpngという文字列を含む、またはgifという文字列で終わる」という意味。なので /pngxxxx とか /hoge.jpgaaaa みたいなパスでもログが抑制される。

一応これでも画像のログは抑制されるので、間違いに気付かずコピペで広まったのだろう。間違えるのは仕方ないけど、検証されずにコピペで拡散してるのは問題。というわけでエントリにしてみた。