====== ロボットはじき ======
ここのようなマイナーなサイトでも、ロボットはどんどんやってきます。いや、むしろマイナーだからこそロボットのアクセスが妙に目立ったりします。
検索エンジンに引っかかること自体は悪いことではありません。検索サイトからここへいらっしゃる方も少なからずいらっしゃいます。役立つ情報があるのなら、それを役立ててもらうのは喜ばしいことです。
ただ、たとえば、[[http://www.wildtree.jp/~araki/modules/piCal/|予定表]]のようなものの内容は、検索サイトに拾ってほしくないし、拾われるべきものではありません。
このような、特定の部分をはじくための指示について書きます。
===== &aname(robots_txt);robot**s**.txtを用いる方法 =====
robot**s**.txt ((http://サイト/robots.txtのように必ずドキュメントルートに置く。))に拒否する、或いは許可する**名前**((一般にはディレクトリ名))を記述します。
User-agent: Googlebot
Disallow /piCal/
User-agent: Slurp
Disallow: /piCal/
のようにUser-agent単位で拒否(或いは許可)を列記します。User-agent: * とすれば、すべてのロボットに対して要求することになります。
なお、許可の与え方は、場合によっては思わぬ副作用を持ちます。Googlebotの場合などは、Allow: のみがある場合には、Allowされているディレクトリしかスキャンしなくなるそうです。AllowはDisallowしたディレクトリの配下に部分的に許可したいものがある場合などにとどめるべきでしょう。
なお、robots.txtは、強制力を持つものではありません。ロボットがコレを読んでも無視するかもしれませんし、或いはそもそも読まないかもしれません。
なお、robot.txtではなくrobot**s**.txtであることにも注意してください。
===== &aname(meta);metaタグを用いる方法 =====
robots.txtはドキュメントルートに置く必要があるため、プロバイダに間借りしているページなどの場合設置ができません。そんなときには、ページ内に、metaタグを置くことでほぼ同等の指示ができます。ただしこれはそのタグを含むページおよび、そこに含まれるリンクに対してのみ作用するので、直接metaを含まないファイルへアクセスされた場合には無力ですし、robots.txt同様に**無視するロボットもいる**という弱点があります。
と書いておけば、そのページはインデックスしないように、また内部のリンクをたどることもしないようにという指示になります。
と書けばそのページはインデックスしていいけれど、リンク先は見ないようにという指示になります。
のようにするとGooglebotに対して、キャッシュしないようにという指示になります。問題のあるコンテンツを削除したのに、Googleのキャッシュに残ってしまって笑い物になったなどということがおきないようにできます。
(name="robots"にすればすべてのロボットに対する要求になります。)
===== &aname(mod_rewrite);mod_rewriteを用いる方法 =====
robots.txtやmetaタグではじけない悪質ロボットに対抗する効果的な方法ですが、apache + mod_rewrite という構成でしか利用できません。しかし、いずれも広く用いられているのでほとんどの場合に使えると思います。
ロボットをはじきたいディレクトリの.htaccessに次のような設定を追加します。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} NaverBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [NC]
RewriteRule ^.*$ - [F,L]
これは、User-agentが NaverBot(大文字小文字は無視)か、GoogleBot(大文字小文字を区別して合致する場合)であれば、そのディレクトリ内のあらゆるリソースへのアクセスを、失敗(F)にします。
robot**s**.txtを読むがその指示に従わないNavorBotなどをはじくのに有効です。
==== おまけ: 行儀の悪いロボット(当サイトを襲ったものについて) ====
以下に、robots.txtを無視して、勝手に勝手なものを漁っていったロボットを書いておきます。この種の情報は、既にあちこちにありますので、余分かもしれませんが、参考と、自分への覚書として。
* NaverBot
大変に評判の悪いロボットです。噂どおりrobots.txtを読んでいるのに、その内容は無視です。あるいはうがった見方をすれば、その内容こそが重要な情報のありかとばかりにアクセスに来ている可能性もあります。mod_rewirteでアクセスをとめました。
* msnbot
これも、robots.txtを読んでいるのに、内容は無視していますね。やりたい放題は[[http://www.msn.com|マイクロソフト]]の面目躍如といったところでしょうか? :-(
同じく mod_rewiteで禁止しておきました。
* lwp-trivial
某ソーシャルサイト系のロボットという噂もありますが、こいつはrobots.txtをまったく読んでいません。今のところそれほど頻繁にアクセスしていないし、ロボットにさらってほしくないところにはアクセスしていないので、様子を見ていますが、おかしなことをしだしたら、mod_rewrite送り決定です。
[[その他:Tips]]へ戻る