2011-11-23 1 views
2

나는 classifieds 웹 사이트가 있습니다. 이 웹 사이트에서는 사용자가 방문 목적으로 방문한 각 제품 페이지 인 db를 저장하므로 마지막으로 방문한 제품을 볼 수 있습니다.구글을 제외하는 PHP 코드

문제는 googlebot 및 기타 사이트가 내 사이트에 들어갈 때 Google이 천개의 제품 페이지를 방문하기 때문에 db가 수천 개의 항목으로 채워지는 것입니다.

나는 현재 사용자가 Googlebot이 여부입니다 찾으려고 $_SERVER['HTTP_USER_AGENT']과 다양한 기능을 시도하고이 DB의 페이지 뷰, 상처가없는 경우는 unusefull 결과 스팸하지만 그들 중 누구도에 보이지 않는다 아니에요 있도록 나는 Google IP를 얻었고 내 데이터베이스에서이를 인식합니다.

Google이 머물 수 있도록 PHP에서 좋은 방법을 알고 있습니까?

+0

표준 robots.txt를 사용할 수 없습니까? http://en.wikipedia.org/wiki/Robots_exclusion_standard –

+2

@JimH : 질문자가 원하는 것은 Google의 페이지 뷰를 계산하지 않고 실제로 웹 사이트에서 Google을 제외하지 않는 것입니다. – EdoDodo

답변

1

다음 스 니핏을 사용하면 GoogleBot을 감지하고 데이터베이스에 저장하지 않아도됩니다.

if (!strpos($_SERVER['HTTP_USER_AGENT'],"Googlebot")) { 
    // log to database 
} 
1

세계에서 왜 Google을 계속 사용 하시겠습니까? 다른 검색 엔진도 사이트 색인을 생성 할 수 있습니다. 빙, 야후, 알타 비스타 등은 어떻습니까?

robots.txt을 사용하면 크롤러가 사이트의 색인을 생성하지 못하게 할 수 있습니다.

하면 루트에 robots.txt를 확인하고 그 안에 다음 넣어 : 당신이 어떤 페이지 상점에 크롤러, 당신은 메타 대신

<meta name="robots" content="noindex, nofollow" /> 

을 설정할 수 있도록하려면

User-agent: * 
Disallow:/

을 모든 봇이 "좋은"것은 아니며 이러한 태그를 존중합니다.

+1

제가 이해하기에, 원래의 포스터는 단순히 Google 보봇을 제외하지 않고 페이지 뷰를 기록하기를 원하지 않았습니다. – EdoDodo

+0

이것은 모든 검색 엔진이 사이트 색인을 생성하지 못하도록합니다. 어떤 사이트도 방문하지 않을 것이라고 보장 할 수 없습니다. 또한 색인에서 웹 사이트를 제거합니다 ... 아마도 이것은 또한 원하는 내용이 아닐 수도 있습니다. –

0
<?php echo $_SERVER['REMOTE_ADDR'];?> 

은 클라이언트의 주소를 제공합니다. 그런 다음 ip를 검사하는 논리에 따라 페이지를 저장하거나 버릴 세션 변수를 설정합니다.

@ Jan의 대답이 더 좋습니다. 그것은 모든 로봇을 차단하지만.

1

다른 모든 로봇, 거미 및 자동 스크립트가 웹 서핑에 대해 생각 했습니까? 그들은 또한 당신의 데이터베이스를 채울 것입니다. 그리고 모든 UserAgent, IP 및 기타 특성을 알아내는 것이 좋습니다. 어쩌면 역사를 제한하여 25 개 항목을 말하는 것이 더 낫습니다.

내 대답은 : 내역 데이터베이스 또는 방문자 클라이언트의 쿠키에 내역을 저장하십시오.