如何重定向用户但不影响Google(和其他爬虫)?

3

我希望能够向我的访客发送一条消息并将其重定向到新页面,但我不希望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
我会使用的解决方案是:

- 编辑 .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;
}

创建一个会话变量来测试是否已经访问过,并且只显示一次消息。

这是一个好主意,但我想知道机器人是否在调用之间维护状态(以存储会话cookie)。 - xPheRe

0

有很多好的代码可以检测网络爬虫。尝试这个教程开始吧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接