如何检测它的Twitter请求我的页面

时间:2014-02-12 00:53:03

标签: php redirect twitter

根据Tweet Button文档(https://dev.twitter.com/docs/tweet-button/faq#count-api-increment),必须使用HTTP响应代码200访问发布的文章,以允许Twitter计算您的文章。

我们网站的当前设置如下: 1.文章URL有以下链接:/ post /:date /:title 2.通过Twitter共享的链接是:/:date /:title(我不知道为什么 - 我没有设计它) 3.当有人访问第二个链接时,后端代码执行301重定向到第一个链接

要修复Tweets计数,我需要使用JS脚本代码提供响应代码200来执行重定向(例如window.location ='...')。但它会破坏301机器人抓取网站的重定向,这是我们想要避免的(SEO原因)。

因此,我看到的唯一解决方案是在尝试curl我的网站时,留下301重定向,并仅向Twitter提供不同的解决方案。

但怎么办呢?

1 个答案:

答案 0 :(得分:3)

我刚刚找到了解决问题的方法。

根据Twitter文档(https://dev.twitter.com/docs/cards/getting-started#crawling)Twitter正在使用Twitterbot用户代理,并在此基础上编写以下代码片段:

if( strpos($_SERVER['HTTP_USER_AGENT'], 'Twitterbot') !== false ) { // for twitter counting
    echo('<script type="text/javascript">window.location = "/post/:date/:title"</script>');
    die;
}
else {
    header('Location: /post/:date/:title', true, 301);
    die;
}

希望将来帮助某人。