redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 -
목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시... 4 1.3 settimeout 예시... 6 02 데이터검증방법... 7 3.1 [ 데이터검증 TOOL ] 로검증하기... 7 3.2 데이터검증이어려울경우,... 7-2 -
01 HTTP 표준 redirect 사용 redirection 이란? 웹페이지가강제이동되는것을말하며, redirection 현상이일어날경우방문자의유입경로정보를 유실하게된다. 이를정상수집하기위해서아래예시와같이랜딩페이지주소뒤에현재파라미터값와레퍼러 값을붙여이동시킨다. 1.1 HTTP 표준 redirect 예시 (target.html 은임의의랜딩페이지를의미한다.) A. PHP 일경우, <? $retref = $_SERVER['HTTP_REFERER']; $returl = $_SERVER['QUERY_STRING']; header( "Location: target.html?".$returl."&source=".$retref );?> B. ASP 일경우, <% retref = Request.Servervariables("HTTP_REFERER") returl = Request.ServerVariables("QUERY_STRING") response.redirect "target.html?" + returl + "&source=" + retref %> C. JSP 일경우, <% retref = request.getheader("referer"); returl = request.getquerystring(); response.sendredirect( "target.html?" + returl + "&source=" + retref ); %> D. HTML 일경우, - 3 -
<script type="text/javascript"> var logtrk_gourl = "target.html"; // 아래라인은수정하지않습니다. var logtrk_ref = ""+document.referrer.replace(/\?/g, "%3F" ).replace(/&/g, "%26"); var logtrk_param = ""+document.location.search.substr(1); if( logtrk_param!= "" ) { if( logtrk_gourl.indexof( "?" ) > 0 ) { logtrk_gourl = logtrk_gourl + "&" + logtrk_param; else { logtrk_gourl = logtrk_gourl + "?" + logtrk_param; if( logtrk_ref!= "") { if( logtrk_gourl.indexof( "?" ) > 0 ) { logtrk_gourl = logtrk_gourl + "&retref=y&source=" + logtrk_ref; else { logtrk_gourl = logtrk_gourl + "?retref=y&source=" + logtrk_ref; document.location = logtrk_gourl; </script> 1.2 redirect 현상이여러번일어날경우예시 리다이렉션현상이여러번일어날경우, 랜딩페이지에중복된파라미터값이붙게되므로, 랜딩페이지주소에 "retref=y&source=http://" 파라미터값이있을경우파라미터값에레퍼러값을붙이지않도록한다. A. PHP 일경우, <? $retref = $_SERVER['HTTP_REFERER']; $returl = $_SERVER['QUERY_STRING']; $gourl = "target.html?".$returl; if(!eregi( "source=http(s){0,1://",$returl ) ){ $gourl.= "&source=".$retref; header( "Location:".$goUrl); - 4 -
?> B. ASP 일경우, <% Dim regex, matches, gourl, returl, retref retref returl gourl = Request.Servervariables("HTTP_REFERER") = Request.ServerVariables("QUERY_STRING") = "target.html?" + returl SET regex = New RegExp regex.pattern = ".*source=http(s){0,1://.*" regex.ignorecase = True regex.global = True SET Matches = regex.execute(returl) if Matches.count <= 0 then gourl = gourl & "&source=" + retref end if response.redirect gourl %> C. JSP 일경우, <% String retref = request.getheader("referer"); String returl = request.getquerystring(); String gourl = "target.html?"+returl; if (!returl.matches(".*source=http(s){0,1://.*")){ gourl += "&source="+ retref; response.sendredirect( gourl ); %> D. HTML 일경우, <script type="text/javascript"> var logtrk_gourl = "target.php"; // 아래라인은수정하지않습니다. var logtrk_ref = ""+document.referrer.replace(/\?/g, "%3F" ).replace(/&/g, "%26"); var logtrk_param = ""+document.location.search.substr(1); - 5 -
if( logtrk_param!= "" ) { if( logtrk_gourl.indexof( "?" ) > 0 ) { logtrk_gourl = logtrk_gourl + "&" + logtrk_param; else { logtrk_gourl = logtrk_gourl + "?" + logtrk_param; var pattern = /retref=y&source=http(s){0,1:\/\//g; if( logtrk_ref!= "" &&!pattern.test(logtrk_param )) { if( logtrk_gourl.indexof( "?" ) > 0 ) { logtrk_gourl = logtrk_gourl + "&retref=y&source=" + logtrk_ref; else { logtrk_gourl = logtrk_gourl + "?retref=y&source=" + logtrk_ref; document.location = logtrk_gourl; </script> 1.3 settimeout 예시 위의예시가불가능할경우 redirection 페이지에기본스크립트를삽입하고 settimeout 으로일정시간을주어 스크립트가읽히는시간을만들어주어유입경로를수집한다. 이방법을적용할경우, [ 반송 ] 데이터측정이 불가능하다. <!-- LOGGER TRACKING SCRIPT. --> 기본스크립트삽입 <!-- END OF LOGGER TRACKING SCRIPT --> <script language="javascript"> <!-- function gourl(){ top.document.location = http://yourdomain.com/target.html; settimeout("gourl()",200); //--> </script> - 6 -
02 데이터검증방법 3.1 [ 데이터검증 TOOL ] 로검증하기 1. [ 데이터검증 TOOL ] 에서데이터검증할사이트선택후 [ 조회 ] 클릭하여작동시킨다. 2. 검색엔진을통해내사이트방문시 [ 데이터검증 TOOL ] 표시되는정보확인한다. A. 방문경로 (Referrer) 에정보가수집되었는지확인한다. B. 만약, 정보가없다면유입했던검색엔진의링크를복사하여 [ 데이터검증 TOOL ] 의 [HTML 소스검출 ] 에서검출해보면서여러번리다이렉션을하고있는지? 어느단계에서유실되는지? 확인할수있으며, 확인된바에따라추가작업진행한다. 3.2 데이터검증이어려울경우, [1:1 문의 ] 로문의주시면빠른시일내확인후답변드리도록하겠습니다. 끝. - 7 -
L O G G E R R E F E R E N C E L I B R A R Y Contact 발행처발행인제품문의 비즈스프링 Saas 사업부 LOGGER http://www.logger.co.kr service@logger.co.kr - 8 -