2012-12-02 2 views
1

나는 과거의 어떤 것을 기반으로 동적 리디렉션을해야합니까? URL에리다이렉터 또는 Anony 복제본

예를 들면. 내가 좋아하는 링크를 보낼 경우 :

http://go.com?http://link1.com

go.com은 15 초 로딩 페이지가 페이지를로드합니다. 이 페이지는 그것에 약간 html가있을 것이다. 사람이 아무 것도하지 않으면 15 초 후에 link1.com으로 리디렉션됩니다.

이 작업은 내가 물음표 후 추가 모든 URL로 발생해야

http://go.com?http://link2.com http://go.com?http://link5.com 등 여기

은 내가 가지고있는 코드 찾았지만 작동하지 않습니다.

<?php 
$delay = "15"; # how many seconds expire before automatic redirect 
$site = $_GET['url']; ?> 
<html> 
<head> 
<meta http-equiv="refresh" content="<?php echo $delay; ?>;url=http://<?php echo $site; ?>"> 
</head> 
<body> 
    redirecting you to <?php echo $site; ?> in <?php echo $delay; ?> seconds ...</p> 
</body> 
</html> 

도움이 될 것입니다.

답변

0

URL을 http://go.com/?url=http://link1.com으로 지정하거나 $_SERVER['QUERY_STRING']을 사용하여 액세스하십시오.

리디렉션 할 URL 인코딩 URL을 고려하십시오. 그렇지 않으면 도착 URL의 일부가 go.com URL의 일부로 브라우저에서 잘못 이해 될 수 있으며, 이상한 오류와 깨진 리디렉션으로 끝나게됩니다. urlencode()urldecode()에서보세요 :

사용자가 리디렉션 페이지로 이동 클릭 링크를 생성

<a href="http://go.com?<?=urlencode("http://link1.com/?a=b&c=d#e")?>">Go to Link1!</a> 

이, http://link1.com/?a=b&c=d#ehttp%3A%2F%2Flink1.com%2F%3Fa%3Db%26c%3Dd%23e에 예를 대상 URL을 도는 모든 있도록 : /? link1.com URL의 # & # 문자는 go.com 페이지의 동작에 영향을 줄 수 없습니다. 리디렉션 페이지의 링크를 얻는 경우

$site = urldecode($_SERVER['QUERY_STRING']); 

이되도록 이전 단계에서 우리가 한 일을 취소 할 urldecode()에 싸여 대신 $_GET['url']의 대상 URL을 얻기 위해 내 제안 $_SERVER['QUERY_STRING']를 사용 urlencode()에 의해 생성 된 가글 메쉬가 meta 태그에서 사용할 수있는 정상적인 검색 URL로 되돌아갑니다.

또한,이 코드를 기반으로, 당신은 http://http://link1.com로 리디렉션하려는 시도의 결과로, 당신의 리디렉터 페이지 URL과 리디렉션 meta 태그 모두에서 http://을 갖고있는 것 같다. 메타 태그에서 http://을 삭제합니다.

리디렉션되는 페이지 (성가신 페이지)를 고집하는 경우, 15 초 동안 쳐다보기를 기다리지 않는 사용자를 위해 페이지로 연결되는 "즉시 리디렉션하려면 여기를 클릭하십시오."링크를 추가하십시오. 중요성이 전혀 없다.

+0

덕분에 너무 많은 emphram. urlencode()를 사용하여 몇 가지 사용 예제를 제공 할 수 있습니까? 나는 새벽에 .. – user1608231

+0

'urlencode()'와'urldecode()'의 사용법을 확장하기 위해 나의 대답을 업데이트했다. 내 또는 다른 사람들의 답변이 도움이된다면, 왼쪽에있는 컨트롤을 사용하여 upvote와 답으로 표시하십시오! :) –

0

작업 코드를

<?php 
$delay = 5; # how many seconds expire before automatic redirect 
$delayMili = $delay * 1000; //converting it to miliseconds 
$site = $_GET['url']; 
?> 
<html> 
    <head> 
     <script type='text/JavaScript'> 
      setTimeout('window.location="<?php echo $site; ?>"',<?php echo $delayMili;?>) 
     </script> 
    </head> 
    <body> 
     redirecting you to <?php echo $site; ?> in <?php echo $delay; ?> seconds ...</p> 
</body> 
</html>