Как я могу перенаправить пользователей, но не Google (и другие сканеры)? - PullRequest
3 голосов
/ 27 августа 2011

Я хочу перенаправить на новую страницу с сообщением только один раз для моих посетителей, но я не хочу, чтобы Google думал, что мой контент был перемещен навсегда / временно.

Как мне этого избежать?

Это PHP, который я использую для перенаправления:

<?php
@session_start();

$_SESSION['uri'] = $_SERVER['VBSEO_URI'];

function getRealIP() {

    if (!empty($_SERVER['HTTP_CLIENT_IP']))
        return $_SERVER['HTTP_CLIENT_IP'];

    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
        return $_SERVER['HTTP_X_FORWARDED_FOR'];

        return $_SERVER['REMOTE_ADDR'];
    }

if(getRealIP()!=$_COOKIE['cookie']) {

    setcookie("cookie", getRealIP(), time() + 31536000, "/");
    header('Location: http://www.sie.com/redirect/');     

    }

?>

Ответы [ 2 ]

3 голосов
/ 27 августа 2011

решение, которое я бы использовал;

- Редактировать .htaccess добавить эту строку

RewriteRule robots\.txt robots.php

Создать файл robots.php и вставить в этот код

session_start();
$_SESSION['robot'] = 1;
echo file_get_contents('robots.txt');
exit;

в вашем коде ... протестируйте эту переменную

                if (!(isset($_SESSION['robot'])))
                    {
    //this is probably human
                    } else
                    {
    //this is probably a crawler;
}

Создайте переменную сеанса, чтобы проверить, просматривали ли вы и отображали ли сообщение только один раз

0 голосов
/ 27 августа 2011

Существует много хорошего кода для обнаружения сканеров. Попробуйте этот урок , чтобы начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...