테스트 사이트 - 개발 중인 베타 버전입니다

접속경로 키워드 접속차단 질문 채택완료

장똥 2년 전 조회 1,242

네이버 로  검색키워드 "홍길동,예진아씨" 검색접속시 차단 하고자하는데 아래처럼 하는데 차단이 안되는데.. 방식이 틀렸을까요 ?ㅠㅠ

</strong>

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

        }

    }

}

?></p>

<p><strong>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
2년 전

</p>

<p>$referrer = $_SERVER['HTTP_REFERER'];

$referrer = urldecode($referrer);</p>

<p>

인코딩 문제일 수도 있어요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

c
2년 전

네이버 검색 접속 경로는 검색 전 페이지에서 네이버로 넘어갈때만 설정할 수 있습니다. 검색 키워드는 접속 경로에 포함되지 않기 때문에 차단이 안되는 것 같습니다. 검색 키워드를 차단하기 위해서는 네이버 검색 결과 페이지에서 다시 다른 페이지로 넘어가는 것을 차단하는 방법이 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

c
2년 전

네이버 로 검색키워드 "홍길동,예진아씨" 접속시 차단하는 것은 아래와 같이 하면 됩니다.

</strong>

<?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: <a href="http://www.example.com/");" target="_blank" rel="noopener noreferrer">http://www.example.com/");</a>

            exit;

        }

    }

}

?></p>

<p><strong>
 

위 코드는 네이버 검색에서 홍길동, 예진아씨 키워드가 포함된 검색 결과를 보는 경우, http://www.example.com/ 로 리다이렉트 시켜주는 코드입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

c
2년 전

네이버 로 검색할 때는 검색어를 입력하고 검색을 하기 전에는 HTTP_REFERER값이 없기 때문에 차단이 안됩니다. 검색을 실행하면 네이버의 검색 결과 페이지로 이동하게 되는데 그때 검색어가 포함된 HTTP_REFERER값이 생성됩니다. 그래서 검색 결과 페이지로 이동하기 전에 해당 검색어가 포함된 HTTP_REFERER값이 있는지 확인하여 차단하는 것이 방법입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인