【问题标题】:How can I redirect users but not Google (and other crawlers)?如何重定向用户而不是 Google(和其他爬虫)?
【发布时间】:2011-08-27 07:53:20
【问题描述】:

我想重定向到一个新页面,只向我的访问者发送一条消息,但我不希望 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/');     

    }

?>

【问题讨论】:

    标签: php redirect search-engine


    【解决方案1】:

    我会使用的解决方案;

    -编辑.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)
    【解决方案2】:

    有很多很好的代码可以用来检测爬虫。尝试this tutorial 开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      相关资源
      最近更新 更多