PHPのページにロボットがアクセスしてきたときに、処理をしないようにしたいと思います。
ディレクトリ単位ではロボット歓迎ですが、あるページだけ来てほしくないのです。
そこで、ロボット全般を指定する正規表現なりなんなりで、簡単にロボット全般をはじくコードを教えてください。
ロボットのエージェント全般を網羅するような具体的な書き方でお願いします。
<meta name="Keywords" content="norobot"> <meta name="Robots" content="noindex,nofollow"> <meta name="googlebot" content="noarchive"> <meta name="Robots" content="noarchive">
をheadに書く。
自社のウェブサイトを管理しているものです。 社員専用掲示板を、自社のウェブサイトに設置することを検討しています。 社員の意見交換の場として活用したいのですが、そう.. - 人力検索はてな
正規表現で検索エンジンのホスト名でマッチさせるのが一番手っ取り早いかなと
ホスト名は環境変数から持ってくるのではなく、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 でリダイレクトさせてしまうのも手です。
こうすることで、インデックスから削除される可能性も出ます (時間は掛かるでしょうが・・・)
のようにページが移動した
それは処理されないでなくインデックスされないだけ。