[펌글] referer(레퍼러)가 없는 경우 해결 방법

By | 8월 20, 2008

- 출처 : http://blog.paran.com/minugi/2924082 -

referer : 어떤 링크를 클릭해서 들어왔는지 경로를 알 수 있는 내장 변수,
자바스크립트나 플래쉬 링크를 통해 들어온 경우는 referer를 알 수가 없다.

 

<?
        if ($_SERVER[HTTP_REFERER] != "") $ref = "?ref=$_SERVER[HTTP_REFERER]";
        else $ref = "";
?>

또는

<Script language="JavaScript">
document.write("<img src='http://www.paran.com?id=alsdnr96&url="+document.referrer+"' width=0 height=0>");
</SCRIPT>

 

** 해결방법 **

1. 들어오는 링크에서 따로 url을 파라미터로 넘겨줘야 함

2. (아래)

 

1. 표준 HTTP 리다이렉션(redirection)을 이용한 방법(추천)

외부에 링크된 홈페이지의 주소가
http://domain.com/ 인경우 보통 기본 페이지인
index.html 또는 default.html 등이 나타납니다.

하지만 실제 사용자에게 보여지는 웹페이지는 http://domain.com/main/frame.html 등으로
구성되어 meta 태그등으로 이동시키는 경우 (index.html 또는 default.html 등의 페이지에 다음과 같이 코딩이 되어 있는경우) 발생하는 문제입니다.

이는 외부 검색엔진이 정상적으로 웹사이트에 들어올 수 없게 되므로, 인터넷 마케팅상의 문제로도 중요한 사항입니다.

* 표준 HTTP프로토콜의 리다이렉션을 사용하셔야 합니다.

-------index.html-------------------------------------------------------------------------
<html>
<head>
<meta http-equiv=Refresh content=0;url=main/frame.html>
</head>
</html>
---------------------------------------------------------------------------------------------
또는
-------index.html-------------------------------------------------------------------------
<html>
<head>
<script language=javascript>
document.location = 'main/frame.html';
</script>
</head>
</html>
---------------------------------------------------------------------------------------------

위와 같이 되어 있는경우
HTTP프로토콜의 REDIRECT기능을 사용하지 않고, HTML이 제공하는 REFRESH 또는 자바스크립트의 URL지정방식을 사용하므로, 웹브라우져가 참조페이지(REFERRER)를 모두 잃어버리게 되며, 따라서 모두 북마크접속 또는 직접접속으로 나타나게 됩니다.
* 이는 외부의 검색엔진등이 찾아들어 올수없는 문제를 야기시킬수도 있으며, 인터넷 마케팅상 매우 불리합니다.

이를 해결하기 위해서는 다음과 같이 index.php 또는 default.asp를 생성하여 index.html을 삭제하고 대체해야 합니다.

* main/frame.html을 실제 이동될 URL로 대체하세요.

PHP를 사용하는 경우
---예)index.php----------------------------------------------------------------
<?
header( "Location: main/frame.html" );
?>
------------------------------------------------------------------------------------

ASP를 사용하는 경우
---예)default.asp --------------------------------------------------------------
<%
response.redirect "main/frame.html"
%>
------------------------------------------------------------------------------------

JSP를 사용하는 경우
---예)index.jsp --------------------------------------------------------------
<%
response.sendRedirect("main/frame.html");
%>
------------------------------------------------------------------------------------

위와 같이 HTML리프레시 메타태그 및 자바스크립트를 이용한 URL이동이 아닌
HTTP 헤더를 통해 redirection 을 해야 외부참조 페이지(검색엔진 및 검색키워드) 등이 정확히 검출됩니다.

 

 

< referer 값을 안 보내는 경우 >

 
다음측에서 레퍼럴 정보를 이용해서 게시판의 무단 링크를 막은 것이네요..

즉, REFERER 가 있으면서 다음 카페 URL 이 아닌 경우 페이지를 표시할 수 없게 만든거죠.

저도 제꺼 제로보드 게시판을 이렇게 만들어놨죠..^^

이럴 경우.. REFERER 정보를 보내지 않는 링크 방식을 쓰면 됩니다.(REFERER 가 없는경우 페이지를 표시하도록 만들었을겁니다.)

REFERER 에 대한 설명은 생략하구요..(간단히 말하자면 '이전 페이지 정보' 정도..)

REFERER 를 보내지 않는 방식으로 페이지를 이동할려면..

브라우저 주소창에 직접 주소를 친다.

즐겨찾기로 접근한다.

플래시에 있는 액션스크립트로 링크를 건다.

자바스크립트의 location.href 나 window.open 으로 링크를 건다.

가 있겠네요..

그렇다면. 바꿔야 할 부분은..
<area shape="rect" coords="8, 17, 405, 537" href="http://cafe124.daum.net/_c21_/bbs_list?grpid=c0Vm&fldid=5gSo">


<area shape="rect" coords="8, 17, 405, 537" href="#" onclick="location.href='http://cafe124.daum.net/_c21_/bbs_list?grpid=c0Vm&fldid=5gSo';">

로 바꿔주시면 될 겁니다.

그리고 그림 경로도 잘못되었으니 수정해 주시구요..

테스트 해볼려구 그 카페에 가입까지 했네요..

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments