2

私は広告のウェブサイトを持っています。このウェブサイトでは、ユーザーが履歴の目的で訪問した各製品ページをデータベースに保存しているため、最後に訪問した製品を表示できます。

問題は、Googlebot や他のユーザーが私のサイトにアクセスすると、Google がアクセスする何千もの製品ページを傷つけるため、DB が何千ものエントリでいっぱいになることです。

現在のユーザーがgooglebotであるかどうかを調べるためにさまざまな機能$_SERVER['HTTP_USER_AGENT']を試してみました。そうであれば、dbのページビューを痛めないようにして、役に立たない結果でスパムされないようにしましたが、どれも機能していないようです。 Google の IP を取得し、データベースで認識します。

グーグルを確実に排除するためのPHPの良い方法を知っている人はいますか?

4

4 に答える 4

2

次のスニピットを使用できます。これは、GoogleBotを検出し、データベースに保存しないようにする必要があります。

if (!strpos($_SERVER['HTTP_USER_AGENT'],"Googlebot")) {
     // log to database
}
于 2011-11-23T14:29:40.187 に答える
1

いったいなぜ、Google だけを排除したいのでしょうか。他の検索エンジンもあなたのサイトをインデックスするかもしれません。bing、yahoo、altavista などはどうですか?

を使用して、robots.txtクローラーがサイトをインデックスに登録できないようにすることができます。

ルートに robots.txt を作成し、次の内容を入れます。

User-agent: *
Disallow: /

一部のページでクローラーを許可したい場合は、代わりにメタを設定できます

<meta name="robots" content="noindex, nofollow" />

すべてのボットが「ナイス」で、これらのタグを尊重しているわけではありません。

于 2011-11-23T14:23:46.970 に答える
1

Web をサーフィンしている他のすべてのロボット、スパイダー、自動スクリプトについて考えましたか? また、データベースがいっぱいになります。そして、これらすべての UserAgents、IP、およびその他の特性について調べるのは地獄です。おそらく、履歴を 25 エントリに制限する方がよいでしょう。

したがって、私の答えは次のとおりです。履歴データベースのエントリを制限する、訪問者クライアントの Cookie に履歴を保存します。

于 2011-11-23T14:33:24.277 に答える
0
<?php echo $_SERVER['REMOTE_ADDR'];?> 

クライアントの住所を教えてくれます。次に、IP をチェックするロジックに基づいてページを保存または破棄するセッション変数を設定します。

@Janの答えはより良い方法です。それはすべてのロボットを遮断しますが。

于 2011-11-23T14:24:50.557 に答える