画像、jsファイルへのリクエストをフィルターする


apacheでログをデフォルトの設定で運用している場合、画像やJavaScriptファイルへのアクセスログが記録されます。これらのファイルへのリクエストは間接的に呼ばれるものなので、アクセスログの本来の目的(誰が、いつ、どのページにアクセスしたか)から考えると不要です。画像ファイルを豊富に使用している場合、本来のページに対するログよりも大量のログが残される可能性が高いので有害となってしまうケースもあると思われます。


apacheaccess.logから画像、jsファイルへのリクエストをフィルターするにはhttpd.confのCustomLogディレクティブに以下のように記述します。
(Windowsの場合)

# CustomLog logs/access.log common
SetEnvIf Request_URI "\.(bmp|css|gif|htc|ico|jpeg|jpg|js|mpeg|mpg|png|swf)$" nolog
CustomLog logs/access.log common env=!nolog

昨日のエントリの分とあわせると以下のように書くことができます。

# CustomLog logs/access.log common
SetEnvIf Request_URI "\.(bmp|css|gif|htc|ico|jpeg|jpg|js|mpeg|mpg|png|swf)$" nolog
CustomLog "| 'C:/Program Files/Apache Group/Apache2/bin/rotatelogs.exe' 'C:/Program Files/Apache Group/Apache2/logs/access.log' 86400" common env=!nolog