人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで検索エンジンのロボットをはじくには?

PHPのページにロボットがアクセスしてきたときに、処理をしないようにしたいと思います。
ディレクトリ単位ではロボット歓迎ですが、あるページだけ来てほしくないのです。

そこで、ロボット全般を指定する正規表現なりなんなりで、簡単にロボット全般をはじくコードを教えてください。

ロボットのエージェント全般を網羅するような具体的な書き方でお願いします。

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP アクセス エージェント コード ディレクトリ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Cherenkov
●0ポイント
<meta name="Keywords" content="norobot">
<meta name="Robots" content="noindex,nofollow">
<meta name="googlebot" content="noarchive">
<meta name="Robots" content="noarchive">

をheadに書く。


参考

検索されにくくする

自社のウェブサイトを管理しているものです。 社員専用掲示板を、自社のウェブサイトに設置することを検討しています。 社員の意見交換の場として活用したいのですが、そう.. - 人力検索はてな

◎質問者からの返答

それは処理されないでなくインデックスされないだけ。


2 ● niwa-mikiho
●70ポイント

正規表現で検索エンジンのホスト名でマッチさせるのが一番手っ取り早いかなと



ホスト名は環境変数から持ってくるのではなく、gethostbyaddr で取得してください。

if($ipaddr == $hostname || (ereg("yahoo|google|naver|baidu", $hostname))){

print "content-type: text/plain\n\n";

print "access denny\n";

}

上記の例は、IP アドレスとホスト名が同じの場合 (ホスト名が取得できなかった事を示す) と、

国名や、それぞれのほかのサービスなどに関わらず、yahoo、google、naver、baidu のアクセスに

対してテキストのみを返しています。

もしもっとちゃんと拒否したいのであれば

header('Location: http://www.?', true, 302);

の様に 302 Moved Temporarily でリダイレクトさせてしまうのも手です。

こうすることで、インデックスから削除される可能性も出ます (時間は掛かるでしょうが・・・)

のようにページが移動した

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ