2014-02-12 2 views
0

트위터 버튼 문서 (https://dev.twitter.com/docs/tweet-button/faq#count-api-increment)에 따르면 게시 된 기사는 트위터가 기사를 계산할 수 있도록 HTTP 응답 코드 200으로 액세스 할 수 있어야합니다.트위터가 내 페이지를 요청하는 것을 감지하는 방법

우리 웹 사이트의 현재 설정은 다음과 같습니다. 1. 기사 URL은 다음과 같습니다 :/post/: date/: title 2. Twitter를 통해 공유되는 링크는/: date/: title 왜 그런지 모르겠다.) 3. 다른 사람이 두 번째 링크에 액세스하면 백엔드 코드가 301 행의 첫 번째 링크로 리디렉션 됨

트윗 카운팅을 수정하려면 JS로 응답 코드 200을 제공해야합니다. 리디렉션을 수행하는 스크립트 코드 (예 : window.location = '...'). 그러나 웹 사이트를 크롤링하는 Google 봇의 301 리디렉션이 중단 될 것입니다. 이는 우리가 피하고 싶은 일입니다 (SEO 이유).

제가 볼 수있는 유일한 해결책은 리디렉션을 301 남겨두고 Twitter 웹 사이트를 curl으로 보내려고 할 때 다른 사람에게만 서비스를 제공하는 것입니다.

하지만 어떻게해야합니까?

답변

1

방금 ​​내 문제에 대한 해결책을 찾았습니다.

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; 
} 

이 미래에 누군가가 도움이되기를 바랍니다 : 트위터 문서 ( https://dev.twitter.com/docs/cards/getting-started#crawling) 트위터 Twitterbot 사용자 에이전트를 사용하고, 나는 코드의 조각 다음은이에 쓰기 내놓고에 따르면

.

관련 문제