2016-09-22 3 views
2

다국어를 구현하는 웹 사이트가 있습니다.다국어 웹 사이트 및 봇 탐지

하위 도메인마다 언어를 나눕니다.

fr-fr.mywebsite.com 
es-es.mywebsite.com 
www.mywebsite.com // root domain => neutral language for bots 

하위 도메인에서 언어 쿠키가 설정되지 않은 경우 하위 도메인을 언어 코드로 사용합니다. 기본 도메인 (www가) 언어 쿠키가 설정되지 않은 경우에

:

  • 는 봇의 경우는 봇이 아니라면, 나는 중립 언어
  • 을 사용하여, 나는 사용자를 감지 언어는 "accept-language"헤더를 사용합니다.

로봇 인 경우 안전하게 감지하는 방법은 무엇입니까? 문제에 관해서는 오래된 주제를 읽었지만 사람들은 단순히 "accept-language"를 사용했습니다. 왜냐하면 봇이이 헤더를 보내지 않았기 때문입니다. 그러나 현재까지는 Google이이 헤더를 보냅니다 ...

봇 (bot) 또는 역 (inverse)을 사용하여 웹 브라우저인지 확인하십시오. 봇이 탐지되지 않으면 잘못된 언어로 색인이 생성되는 웹 사이트입니다.

아이디어가 있으십니까?

+1

왜 언어 주석을 사용하지 않습니까? 그런 식으로 로봇은 보조 언어 페이지 – Cesar

+0

도 사용할 것입니다. 하지만 기본 도메인은 사용자 언어를 자동으로 감지해야합니다. – Ndrou

+1

안녕하세요 @ Ndrou, 요청이 유효한 "accept-language"헤더가 있으면 사용자가 로봇인지 여부를 알아야합니다. 적절한 언어 사이트, 그렇지 않은 경우 기본 또는 기본 언어 사이트로 이동합니다. 로봇 인 경우 언어 주석을 사용하여 모든 altenate 언어를 찾아 색인을 생성 할 수도 있습니다 – Cesar

답변

1

PhP를 사용한다고 가정하면 HTTP_USER_AGENT을 요청하고 사용자 에이전트가 'googlebot'인지 확인할 수 있습니다.

if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot")) 
{ 
    // what to do 
} 

다음은 질문 (및 내가 작성한 예)에 대한 링크입니다.

how to detect search engine bots with php?

+0

예,하지만 Googlebot뿐만 아니라, 야후, 빙, yandex 등 많은 봇이있다 ... 어떻게 하나를 잊지 않도록해야합니까? – Ndrou

+0

당신은 그 모든 봇 이름을 추가 할 수 있습니다, 그냥 구글과 봇 이름을 찾아보십시오. 또한 로그를 추가하고'HTTP_USER_AGENT' 값을 기록하고 목록을 정렬하여 봇과 같은 이름이 팝업되는지 확인할 수 있습니다. 모든 잘 알려진 검색 엔진과 합법적 인 사람들은 봇의 이름을 따릅니다. – Matthew