根据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提供不同的解决方案。
但怎么办呢?
答案 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;
}
希望将来帮助某人。