apacheのアクセスログから画像ファイルを除外したいんだけど

apacheのアクセスログに画像ファイルが含まれるのがイヤだから除外したくて、えっと、setenvifってどう書くんだっけとGoogle検索してみたのです。検索キーワードは「apache ログ 除外」です。
すると何件かヒットするのですが、どうもこれ、正規表現が苦手なボクからみてもダメなんじゃない?という記述がいくつかあったのでGoogle検索結果の上位に並んでいるものから引用します。

Apache のカスタムログ設定 / Linuxで自宅サーバ

SetEnvIf Request_URI “\.(gif)|(jpg)|(png)$” no_log
CustomLog /var/log/httpd/access_log combined env=!no_log

ファイルの拡張子をみて除外しているようですが、この記述だと、jpgが含まれているファイル名も除外されます。例えばmyjpglist.htmlというHTMLファイルも対象になります。あとはまぁないとは思いますけど、hogepngみたいなファイル名の最後が.pngではないようなファイルや、.gift.htmlのようなファイルも該当することになります。

これはきっと、こうした方がいいんじゃないでしょうか。

SetEnvIf Request_URI “\.(gif|jpg|png)$” no_log

Apache ログ 除外 / プライベートに恋

SetEnvIf Request_URI “\.(gif)|(jpg)|(png)|(JPG)|(ico)$” nolog

これでも同様に括弧の解釈がおかしいので、こうした方がいいんじゃいかなと。

SetEnvIf Request_URI “\.(gif|jpg|png|JPG|ico)$” nolog

Apacheのログを分類して記録する方法 / データ復旧・修復・復元・診断・消去 (役立つ解説サイト)
http://hdd-check.com/pc_25.html

SetEnvIf Request_URI “\.(gif)|(jpg)|(png)|(css)$” nolog

これもですね。

とまぁ、Google検索結果の1ページ目10件中の3件が間違いで、他の4件は画像除外とは関係のない記事、2件は正しい記事、1件は間違ってるよ!という指摘記事でした。Google検索結果の2ページ目以降も似たような感じで、以前、Linuxの設定でお世話になった有名どころのWebページも同様のミスをしているので、こうなると私の方が間違っているのではないかと今でも不安です:-)

以下、検索結果上位の「その設定でいいの?」っていうサイトです。

アクセスログをカスタマイズする
【Apache】特定のIPアドレスをログ記録から除外する
アクセスログの収集制御 – 無駄なリクエストを除外する
mod_setenvif を使って Apache のログを軽量化
Apache のカスタムログ設定

ファイル名の途中がjpgなんてそんなにないでしょうし、アクセスログが必要なのって広告代理店とサーバ運営してるとこくらいでしょうから細かいことはいいんじゃないかなーと思いますが、favicon.icoみたいなicoの場合、icoを含む英単語やら名詞って結構多くて、英辞郎 on the WEBで*ico*を検索すると5000件ほど出てきますから、サイトのコンテンツによってはアクセス数が大きく変わっちゃうんではないかなと。

コメントは受け付けていません。