category に対するクローラアクセス制御

category に対するクローラアクセス制御

カテゴリー経由で存在しない超未来とか超過去のページに飛ぼうとして無駄アクセスを繰り返して負荷がかかっていたので、
.htaccess に以下のように書いてみた。

RewriteCond %{QUERY_STRING}     category
RewriteCond %{HTTP_USER_AGENT}  Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT}  Slurp [OR]
RewriteCond %{HTTP_USER_AGENT}  Twiceler [OR]
RewriteCond %{HTTP_USER_AGENT}  Baiduspider [OR]
RewriteCond %{HTTP_USER_AGENT}  Gigabot [OR]
RewriteCond %{HTTP_USER_AGENT}  msnbot
RewriteRule .* - [L,R=404]

?の後ろの QueryString 部に category が含まれていて、ユーザーエージェントがクローラっぽかったら 404 を返す。

ちなみにアクセスログはこんな具合。確かにこんなペースで来たら死ねる。

65.55.210.57 - - [19/Jul/2007:02:40:26 +0900] "GET /~h/tdiary/?category=ALL;year=2002;month=1Q HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:26 +0900] "GET /~h/tdiary/?category=SSL;year=1979 HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:27 +0900] "GET /~h/tdiary/?category=Subversion;year=1977 HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:27 +0900] "GET /~h/tdiary/?category=IPv6;year=1995;month=1Q HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:28 +0900] "GET /~h/tdiary/?category=Cygwin;year=2013 HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:28 +0900] "GET /~h/tdiary/?category=xyzzy;year=2012;month=2H HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:28 +0900] "GET /~h/tdiary/?category=Mac;year=2007;month=11 HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:29 +0900] "GET /~h/tdiary/?category=xyzzy;year=1994;month=4Q HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:29 +0900] "GET /~h/tdiary/?category=tDiary;year=2006;month=03 HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
65.55.210.57 - - [19/Jul/2007:02:40:29 +0900] "GET /~h/tdiary/?category=xyzzy;year=2005;month=2H HTTP/1.0" 404 208 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
64.1.215.163 - - [19/Jul/2007:02:40:32 +0900] "GET /~h/tdiary/././?category=NFL HTTP/1.0" 404 208 "-" "Mozilla/5.0 (Twiceler-0.9 http://www.cuill.com/twiceler/robot.html)"

ついでに tb.rb への無駄アクセスもあったので.htaccess に以下の行も追加

RewriteCond %{HTTP_USER_AGENT}  Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT}  Slurp [OR]
RewriteCond %{HTTP_USER_AGENT}  Twiceler [OR]
RewriteCond %{HTTP_USER_AGENT}  Baiduspider [OR]
RewriteCond %{HTTP_USER_AGENT}  Gigabot [OR]
RewriteCond %{HTTP_USER_AGENT}  msnbot
RewriteRule tb\.rb - [L,R=404]

先週ぐらいから、ここを読めてたのは RSS経由で読んでた人だけなんじゃなかろうか。ほとんどサービス停止状態だった。
気づいたら killall ruby しまくっていた状態。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。