접속경로 키워드 접속차단 질문
본문
네이버 로 검색키워드 "홍길동,예진아씨" 검색접속시 차단 하고자하는데 아래처럼 하는데 차단이 안되는데.. 방식이 틀렸을까요 ?ㅠㅠ
<?php
$referrer = $_SERVER['HTTP_REFERER'];
$keywords = array("홍길동", "예진아씨");
if (strpos($referrer, "search.naver.com") !== false) {
foreach ($keywords as $keyword) {
if (strpos($referrer, $keyword) !== false) {
header("HTTP/1.1 403 Forbidden");
exit;
}
}
}
?>
답변 4
$referrer = $_SERVER['HTTP_REFERER'];
$referrer = urldecode($referrer);
인코딩 문제일 수도 있어요
!-->네이버 로 검색할 때는 검색어를 입력하고 검색을 하기 전에는 HTTP_REFERER값이 없기 때문에 차단이 안됩니다.
검색을 실행하면 네이버의 검색 결과 페이지로 이동하게 되는데 그때 검색어가 포함된 HTTP_REFERER값이 생성됩니다.
그래서 검색 결과 페이지로 이동하기 전에 해당 검색어가 포함된 HTTP_REFERER값이 있는지 확인하여 차단하는 것이 방법입니다.
네이버 로 검색키워드 "홍길동,예진아씨" 접속시 차단하는 것은 아래와 같이 하면 됩니다.
<?php
$referrer = $_SERVER['HTTP_REFERER'];
$keywords = array("홍길동", "예진아씨");
if (strpos($referrer, "search.naver.com") !== false) {
foreach ($keywords as $keyword) {
if (strpos($referrer, $keyword) !== false) {
header("Location: http://www.example.com/");
exit;
}
}
}
?>
위 코드는 네이버 검색에서 홍길동, 예진아씨 키워드가 포함된 검색 결과를 보는 경우, http://www.example.com/ 로 리다이렉트 시켜주는 코드입니다.
!-->네이버 검색 접속 경로는 검색 전 페이지에서 네이버로 넘어갈때만 설정할 수 있습니다. 검색 키워드는 접속 경로에 포함되지 않기 때문에 차단이 안되는 것 같습니다. 검색 키워드를 차단하기 위해서는 네이버 검색 결과 페이지에서 다시 다른 페이지로 넘어가는 것을 차단하는 방법이 있습니다.
답변을 작성하시기 전에 로그인 해주세요.