0

私のサイトでは、ログインしているユーザーが存在しない場合にのみ実行されるヘッダー ("location") 経由のリダイレクトがあり、ログイン フォームにリダイレクトされます。このサイトには Google+ ボタンがあり、Google は常にリダイレクトに従います。取れない どうして?

このリダイレクトを削除すると、すべて問題ありません。私はこのコードで試しました:

if (!$user->user_exists && !getIsCrawler($userAgent)) {
header("Location: login.php"); }

クローラーを検出するには、次の関数を使用します。

$userAgent = $_SERVER['HTTP_USER_AGENT'];
function getIsCrawler($userAgent) { 
$crawlers = 'Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|' . 'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|'
 .'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby'; $isCrawler =
 (preg_match("/$crawlers/", $userAgent) > 0); return $isCrawler; }

ここで何が間違っていますか?あなたの誰かがこれに対する解決策を持っていることを願っています。

4

2 に答える 2

0

残念ながら、この問題を回避することは不可能だと思います。Google は、検索エンジンと通常のユーザーに異なるコンテンツを表示する Web ページ、またはいわゆるクローキング/ドアウェイ ページをチェックするために、さまざまなユーザー エージェント (あいまいな名前) を使用していることが知られています。

于 2012-08-27T19:41:01.900 に答える
0

ユーザー エージェントは簡単に偽装できます。そのため、コードのその部分に注意して、再評価することを検討してください。

コンテンツをペイウォールの背後に配置する必要がある場合、またはログインする必要がある場合に、必要なマークアップをレンダリングする方法に関する Gus Class の記事を確認してください: http://gusclass.com/blog/2012/08/15/rendering-schema-org -ペイウォールの背後にあるコンテンツのマークアップ/

基本的に、ログインページに必要なデータを渡すことで、クローラーはログインでサイトを保護しながら、必要なメタデータを取得できるようになります.

于 2012-08-27T19:36:03.310 に答える