비그누) 특정로봇 방문을 인지하고 우회시키기
본문
안녕하세요.
먼저 그누보드 질문이 아니라 죄송합니다.
제가 물어볼 곳이 여기밖에 없네요. ㅠㅠ
그래도 그누보드에 적용할 것이라 전혀 관계가 없는건 아닙니다.
질문)
A, B, C... 의 로봇이 사이트 방문시 =>>>>>> robot.html 사이트로 우회시키고
이외 접근(기타 로봇 또는 사람이 정상접근)은 ====> 원래 소스가 있는 페이지 그대로 보여주기
에 대한 소스를 검색 해봤는데요.
https://stackoverflow.com/questions/677419/how-to-detect-search-engine-bots-with-php
https://www.insanevisions.com/bot-detection-with-php
https://www.cult-f.net/detect-crawlers-with-php/
https://www.geeksforgeeks.org/how-to-detect-search-engine-bots-with-php/
위 사이트에서 읽어봐도 php를 잘 몰라서 대략적인 것은 알겠는데...
어떤 소스가 맞는 소스인지?
위 소스들에서 제가 원하는대로 사이트로 우회하는 소스를 어디에 어떻게 넣어야 하는지를 모르겠네요.
이럴때 마다 조금이라도 젊을때 php를 공부를 해둘껄이란 생각을 합니다.
지금도 안늦었다라고 생각하는데....잘 안되네요.
그냥 소스만 10년이상 보니..대략적인건 알겠는데...
소스를 수정 및 편집이 안되네요..
혹시 좀 도와 주실 분 있으신가요?
제가 찾은 것중 눈에 들어오는건..
아랫것인데.. 소스가 맞는지도 좀 봐주시겠어요?
로봇 =>1 이라고 되어 있는거에서...숫자 1은 뭐에요?
<?
//검색로봇이 아니면 리다이렉트
$useragent = $_SERVER["HTTP_USER_AGENT"];
$robotPattern = array(
'1NMoreoon' => 1,
'1Noon' => 1,
'yeti' => 1);
foreach ($robotPattern as $agentName => $isRobot){
if(strpos($useragent,$agentName)&&($isRobot)) $robot = true;
}
if(!$robot){
if(!$check)echo "<script>document.location.href = 'http://sir.kr'</script>";
}
?>
검색 1시간 넘게 하다가..ㅠㅠ 지쳐서 질문 드리는거라..노력하지두 않고..란 말은 하지말아주세요
먼저 감사 드립니다.
수고하세요.
답변 2
//if(!$robot){
// if(!$check)echo "<script>document.location.href = 'http://sir.kr'</script>";
// }
if($robot == true){//$robot 이 true 일때 sir.kr 로 보냄
if(!$check)echo "<script>document.location.href = 'http://sir.kr'</script>";
}
대략만 주석 달아드렸습니다. 참고하세요.
<?
//검색로봇이 아니면 리다이렉트
$useragent = $_SERVER["HTTP_USER_AGENT"];
//$_SERVER["HTTP_USER_AGENT"] 는 php 에서 제공하는 에이전트 값 ( 로봇,크롬,익스 등등)
$robotPattern = array(
'1NMoreoon' => 1,
'1Noon' => 1,
'yeti' => 1);
//foreach 적용시 $배열 as $배열의 키값 => $배열의 변수값으로 지정하며으로 배열 크기만큼 while
//즉 1은 $robotPattern 배열의 키값에 대한 변수값
foreach ($robotPattern as $agentName => $isRobot){
if(strpos($useragent,$agentName)&&($isRobot)) $robot = true;
//strpos : 비교 연산자. 참일경우 1
// 즉 $useragent 와 $agentName 비교 참일경우 1
// 결국 참일때 1 and 1 조건으로 $robot 에 true 입력;
}
if(!$robot){ //$robot 이 true 가 아닐때 'sir.kr'로 보냄
if(!$check)echo "<script>document.location.href = 'http://sir.kr'</script>";
}
?>