2014-04-14 3 views
0

?q= 다음에 클라이언트를 URL로 리디렉션하는 페이지를 만들려고합니다. 예를 들어 http://example.com/?q=http://www.google.com은 사용자를 http://www.google.com으로 리디렉션합니다. ?q= 뒤에 URL에 따라 리디렉션되는 페이지를 얻으려면 어떻게해야합니까? 당신이 PHP를 사용하는 경우사용 방법? q = URL 리디렉션

+1

서버 쪽? 고객 입장에서? 모든 언어 환경 설정? 일반 HTML에서는이 작업을 수행 할 수 없습니다. –

+0

어떤 종류의 서버 측 프로그래밍 언어를 사용합니까? –

+0

PHP5와 JavaScript를 사용하여이 작업을 수행하고 있습니다. – domkalan

답변

1

JS

var lnk = location.href.split('?q='); 
location.href = lnk[1]; 

PHP

당신은 당신이 사용하는 어떤 프로그래밍 언어를 지정하지
header('Location: ' . $_GET['q']); 
+0

'q'가 URL의 유일한 매개 변수가 아니면 JavaScript가 작동하지 않습니다. – ThatWeirdo

2

, 당신은이 작업을 수행 할 수 있습니다

<?php 

    if (isset($_GET['q']) && !empty($_GET['q'])) { 
     header('Location: '.$_GET['q']);  

    }     

?> 

당신이 할 수있는 오류를 방지하기 위해 선택적으로 URL의 유효성을 검사합니다. PHP 버전을 사용하고 있는지 확인하십시오 (PHP> 5.2.13). ? Why FILTER_VALIDATE_URL return FALSE for only this url?

<?php 

    if (isset($_GET['q']) && !empty($_GET['q'])) { 
    if(filter_var($_GET['q'], FILTER_VALIDATE_URL)){ 
     header('Location: '.$_GET['q']); 
    }else{ 
     echo "Invalid URL"; 
    } 

    } 

>

2

귀하의 주소 표시 줄에 모든 변수에서 배열을 만듭니다 :이 질문에 확인

var query = {}; 
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
    function(m,key,value) { query[key] = value; }); 

임의 Google 검색에서 테스트를 객체처럼 보였다 :

aqs:  "chrome.0.69i59j69i65l3j69i61j0.1762j0j4" 
es_sm: "0" 
ie:  "UTF-8" 
oq:  "random" 
q:  "random" 
sourceid: "chrome" 

따라서 q 변수를 찾고 i로 리디렉션하십시오. t :

var query = {}; 

window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
    function(m,key,value) { query[key] = value; }); 

location.href = query['q'];