簡易アクセス解析機能拡張-3
アクセス解析で、アクセスの拒否ができるとより高機能になります。
アクセス拒否の方法は、いくつかありますが、ここでは"Loaction"ヘッダーというものを使います。
ヘッダー出力部分に、"Location: URL\n\n"と記述するとそのURLへ強制的にジャンプします。
この方法ですと、ジャンプする際に元のURLが履歴に記録されることもないので、より確実なアクセス拒否となります。
下記のスクリプトをアクセスの解析処理の前に挿入します。
# 拒否するIPアドレスの一覧
@BLOCK_IP = ('www,xxx,yyy,zzz', 'aaa,bbb,ccc,ddd');
# もし、拒否するIPアドレスと一致したなら強制退去
foreach(@BLOCK_IP) {
if($_ eq $ENV{'REMOTE_ADDR'}) {
# ヤフーのページへジャンプ
print "Location: http://www.yahoo.co.jp/\n\n";
exit;
}
}
今回は、ヤフーへ強制ジャンプさせました。
他にも、この"Location"ヘッダーには用途があります。
たとえば、メンテナンス中のページへアクセスする際に、一般ユーザーは別のページへジャンプさせ、
管理ユーザーは通常どおりページを表示させるなどです。
しかし、Locationヘッダーにも弱点はあります。
一部のレンタルサーバーでは、広告の表示などの原因から使用できない場合があります。
その場合は、METAタグを用いたジャンプ方法や、JavaScriptを用いたジャンプ方法を使います。
しかしながら、URLが履歴に残ってしまう点で、あまりお勧めできません。
