Переадресация ботов

Рейтинг: 1Ответов: 1Опубликовано: 09.11.2014

Так, есть страница 1.php.

Не знаю, как реализовать, но хочется сделать редирект ботов.
Если боты (Googlebot, YandexBot, bingbot) зашли на страницу 1.php, то сначала нужно посмотреть, если это боты, то оставить на этой же странице.

А если это не боты, то нужно подгрузить include 1test.php страницу заместо 1.php.

Нужно сделать это через php.

Ответы

▲ 2Принят

Вопрос стар как мир, и решений полно.

function isBot ($ua) {

    $engines = array(
        array('Aport', 'Aport'),
        array('Google', 'Google'),
        array('msnbot', 'MSN'),
        array('Rambler', 'Rambler'),
        array('Yahoo', 'Yahoo'),
        array('Yandex', 'Yandex'),
        array('Aport', 'Aport robot'),
        array('Google', 'Google'),
        array('msnbot', 'MSN'),
        array('Rambler', 'Rambler'),
        array('Yahoo', 'Yahoo'),
        array('AbachoBOT', 'AbachoBOT'),
        array('accoona', 'Accoona'),
        array('AcoiRobot', 'AcoiRobot'),
        array('ASPSeek', 'ASPSeek'),
        array('CrocCrawler', 'CrocCrawler'),
        array('Dumbot', 'Dumbot'),
        array('FAST-WebCrawler', 'FAST-WebCrawler'),
        array('GeonaBot', 'GeonaBot'),
        array('Gigabot', 'Gigabot'),
        array('Lycos', 'Lycos spider'),
        array('MSRBOT', 'MSRBOT'),
        array('Scooter', 'Altavista robot'),
        array('AltaVista', 'Altavista robot'),
        array('WebAlta', 'WebAlta'),
        array('IDBot', 'ID-Search Bot'),
        array('eStyle', 'eStyle Bot'),
        array('Mail.Ru', 'Mail.Ru Bot'),
        array('Scrubby', 'Scrubby robot'),
        array('Yandex', 'Yandex')
    );

    foreach ($engines as $engine) {
        if (stristr($ua, $engine[0])) {
            return($engine[1]);
        }
    }
    return (false);
}

$isbot = isBot($_SERVER['HTTP_USER_AGENT']);

if ($isbot) {
    echo 'А вы друг мой бот :)';
}
else {
    echo 'Bastian одобряет, вы чел! :)';
}

Всё довольно просто :)