2012-03-06 3 views
0

웹 사이트에서 "301 permanent redirect"를 사용하여 내 사이트에이를 감지하고이를 통해 내 웹 사이트에 액세스 할 때 페이지를 표시하는 코드를 설정할 수있는 방법이 있습니까?301 영구 리디렉션

누구에게이 아이디어가 있습니까?

+1

서버 측 언어는 무엇입니까? – ManseUK

+1

아니요. 사이트에서는 클라이언트 브라우저에서 'GET'요청 만 들어옵니다. 301 리디렉션은 다른 사이트와 클라이언트 브라우저간에 직접 이루어지며 자신의 사이트에는 표시되지 않습니다. –

+0

301 리디렉션을위한 특정 페이지를 표시하려면 왜 301 리디렉션 대신 해당 페이지를 가리 키지 않는 것이 좋습니까? – JaredPar

답변

1

리퍼러 만 얻을 수 있습니다. 마지막 요청시 클라이언트가 얻는 서버에서 http 상태 코드를 가져올 수 없다고 생각합니다.

내 대답은 아니오입니다. 서버에 301 상태 코드를 가져올 수 없습니다.

하지만 referer 변수를 사용하면 약간의 마법을 쓸 수 있습니다.

PHP에서 이것을 읽을 수 있습니다 :

$_SERVER['HTTP_REFERER']; 
+0

301 리디렉션에서 Referer가 전달되지 않음 –

+0

301이 사이트를 사용하는 웹 사이트 URL이 도움이된다고 알고 있습니까? – Ma9ic

+0

'$ _SERVER [ 'HTTP_REFERER'];'를 사용하지 마십시오. PHP의 문서조차도 체계적으로 신뢰할 수 없다고 말합니다. – hohner

0

별로 할 수 없습니다. 당신이 301을하고 있다면, 당신은 쿼리 스트링에 리퍼러를 설정할 수 있습니다. 그러나 당신이 아니기 때문에, 당신은 요청이 당신에게 준 것을 잡을 수 있습니다.

0

PHP의 $_SERVER['HTTP_REFERER']을 사용하여 방문자의 출처 URL을 추적 할 수 있습니다. 나는 약간 dodgy 생각하고 모든 브라우저에서 동일한 결과를 얻을 수 없습니다. PHP's documentation조차 '정말로 신뢰할 수는 없다'고 말합니다.

왜 리디렉션에 .htaccess를 사용해야합니까? 당신은 이런 일을 할 수있는 : A의 index.php를

사이트 : B의 ​​index.php를

header("Location: http://siteb.com/?ref=".urlencode('http://sitea.com'); 

사이트 :

if(isset($_GET['ref'])) 
{ 
    if($_GET['ref']=='http://sitea.com') 
    { 
     // Do something 
    } 
} 

편집 :

경우 당신은 할 수 없습니다 사이트 A의 코드 또는 서버 설정을 수정하려면 다음을 사용하십시오.

if($_SERVER['HTTP_REFERER']=='http://sitea.com') 
{ 
    // Do something 
} 
+0

301 리디렉션을 설정하지 않았습니다. 다른 사람이 내 사이트를 가리켜 야하므로 기본적으로 입력 한 URL이 "공식적인 사람"이 아니라는 것을 알려줍니다. – Ma9ic

+0

질문을 편집했습니다. – hohner

+0

시도 \t Ma9ic