mod_setenvifを使ってアクセスログをURIに応じて振り分ける方法。
mod_setenvifをロードしておく。
LoadModule setenvif_module modules/mod_setenvif.so
SetEnvIfディレクティブでURIに応じて環境変数をセットする。正規表現はPerl互換。
SetEnvIf Request_URI "^/foo.php$" foo
環境変数によってログファイルのパスを振り分ける。
CustomLog logs/access.log common env=!foo
CustomLog logs/access.foo.log common env=foo
ログを年月別のファイルにする方法と組み合わせて、さらにLAN内からのアクセスはログ無しにしてみる。
#※2007/11/02 誤ってRequest_URIとしていた箇所をRemote_Addrに訂正!
#サーバ自身からのアクセスは環境変数nologをセット
SetEnvIf Remote_Addr 127.0.0.1 nolog
#LAN内からのアクセスも環境変数nologをセット(プライベートIPアドレスがクラスCの場合)
SetEnvIf Remote_Addr 192.168. nolog
#foo.phpへのアクセスは環境変数fooとnologをセット
SetEnvIf Request_URI "^/foo.php$" foo nolog
#※2007/11/05 rotatelogsのパラメータを修正
#通常のアクセスは詳細(combined)にログを採る
CustomLog "|bin/rotatelogs -l logs/access.%Y%m.log 86400" combined env=!nolog
#fooへのアクセスは簡易ログで
CustomLog "|bin/rotatelogs -l logs/access.%Y%m.foo.log 86400" common env=foo
参考:
mod_setenvif - Apache HTTP サーバ
Apacheのログを分類して記録する方法
自宅サーバを使ったウエブページの公開
0 件のコメント:
コメントを投稿