古い記事
ランダムジャンプ
新しい記事
ケータイ(およびモバイル検索用クローラ)からのみ
アクセス可能にする方法のメモ。

ケータイ用サイトにPCサイト用のクローラが来ると、
重複判定されがちで(そういうサイトなのです) SEO 的にアレなので、
ケータイ世界とPC世界をきっちり分断したい、遮断したい、
というのがモチベーション。

私のモバイルサイトでやっている方法ですので、
完璧なものではないし、完璧に近いものでもありません。
とはいえ、実はこのくらいで十分な気がします
(モバイルまわりは良く分からないので根拠なしですが)。

■ .htaccess
SetEnvIf User-Agent "J-PHONE" jph
SetEnvIf User-Agent "SoftBank" sb
SetEnvIf User-Agent "Vodafone" vf
SetEnvIf User-Agent "MOT" mot
SetEnvIf User-Agent "DoCoMo" dcm
SetEnvIf User-Agent "KDDI" kddi
SetEnvIf User-Agent "UP.Browser" upb
Order Deny,Allow
Deny from all
Allow from env=jph
Allow from env=sb
Allow from env=vf
Allow from env=mot
Allow from env=dcm
Allow from env=kddi
Allow from env=upb
SetEnvIf User-Agent "J-PHONE|SoftBank|Vodafone|DoCoMo|KDDI" dn
Order Deny,Allow
Deny from all
Allow from env=dn

■ perl cgi
my $q = new CGI;
if ($q->user_agent()
    !~ /(J-PHONE|SoftBank|Vodafone|DoCoMo|KDDI)/) {
    print qq(Status: 403 Forbidden\n\n);
    exit;
}

...

さくらの月500円のレンタルサーバも使っていて、
いろいろと制限があってアレなのですが、
より良い方法があったら教えてください。
よろしくお願いします。


追記080110:
(1) UAは偽装できるのでIPを使うのが良い、というコメントを
たくさん頂いております。ありがとうございます。
絶対にPCから見られたくないのならばそれが正解ですね。
しかし私の場合は単にPC検索用クローラさえはじければ良いので、
一般ユーザにUAを詐称されても致命的な問題はありません。
こういう問題設定であればIPのリストをあーだこーだやらなくても、
けっこう軽くできるよ、というのがこの記事の趣旨なのです。
いろいろ説明不足ですいませんでした。タイトルが良くなかったですね。
(2) 「.htaccess」の記述に致命的な誤りがありましたので訂正しました。
ご指摘感謝です。


参考:
- 携帯ブラウザのユーザーエージェントによる機種判別、キャリア判別
  [ドコモ(iモード),au(EZweb),ソフトバンク(SoftBank)]
  http://memorva.jp/memo/mobile/http_user_agent.php
- 機種情報DB - trac on tmty.jp - Trac
  http://tmty.jp/trac/wiki/%E6%A9%9F%E7%A8%AE%E6%83%85%E5%A0%B1DB
- モバイル版Yahoo!検索の検索エンジン用ロボットについて
  http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html
携帯端末類似のクローラーを管理・運営しています。