私のサイトでは、ログインしているユーザーが存在しない場合にのみ実行されるヘッダー ("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; }
ここで何が間違っていますか?あなたの誰かがこれに対する解決策を持っていることを願っています。