2015-02-05 2 views
1

다음과 같은 상황이 있습니다. 내 사이트의 현재 페이지 URL이 다음과 같이 표시 될 때마다 : http://thisismysite.net/example.php?no_redirect=true 검색어를 실행하기 위해 사용자가 방문하는 모든 페이지가 URL 맨 끝에 자동으로 "? no_redirect = true"부분을 추가해야합니다. 나는 그것을하는 방법에 대한 명확한 생각이 없다.PHP는 연결된 페이지에 대해 동일한 쿼리를 유지합니다.

예를 들어, example.php에서 내 사이트 내의 다른 페이지에 대한 다음 링크가 있습니다. -contact.php

당신이 그 클릭하면

-about.php

는, 당신은 각각 about.php 및 contact.php로 리디렉션됩니다. 그러나 example.php 대신 주소 표시 줄에 example.php? no_redirect = true가 있으면 about.php? no_redirect = true 및 contact.php? no_redirect = true로 리디렉션되어야합니다.

나는이 같은 참조 자와 시도 :

if (strpos($_SERVER['HTTP_REFERER'],'true') == false) { 
    $_GET['no_redirect']="true"; 
} 

이 일을 일부러. 이것을 달성하는 가장 좋은 방법은 무엇입니까?

감사합니다.

+0

을 'no_redirect = true'는 무엇입니까? –

+0

모바일 버전의 사이트가 있습니다. 휴대 전화에서 내 사이트에 들어가면 자동으로 모바일 버전으로 리디렉션되지만 이후에는 PC 버전을 볼 수있는 옵션도 제공됩니다. no_redirect는 모바일 버전으로의 리디렉션을 의미하지 않습니다. –

답변

0

해결책 1 : 사용자가 example.php 페이지를 요청하면 no_redirect 변수 (true/false)를 $_SESSION에 저장하는 것이 좋습니다.

다른 페이지보다 $_GET 변수 대신 $_SESSION 변수를 확인하십시오.


해결 방법 2 : 당신은 $_GET 매개 변수에 따라 변수 같은 것을 생성 할 수 :

$no_redirect_param = ""; 

if(isset($_GET['no_redirect']) && $_GET['no_redirect'] == "true"){ 
    $no_redirect_param = "?no_redirect=true"; 
} 

및 각 링크의 끝에이 변수 등보다 :

<a href="about.php<?php echo $no_redirect_param; ?>">About</a> 
+0

고맙습니다.하지만 저의 사이트에는 많은 링크가 있기 때문에 저에게는 그다지 도움이되지 않을 것입니다. 그 해결책은 각자의 질문에 대한 변수를 정의하는 것을 암시합니다. 어쩌면 .htaccess가 더 잘 작동할까요? –

+0

좀 더 일반적인 해결책으로 답변을 업데이트했습니다. 아니요,이 get 매개 변수 때문에 .htaccess를 실제로 변경할 수는 없습니다. get 매개 변수를 전달하는 다른 해결책이 없다고 생각합니다. –

+0

나는 당신이 당신의 대답을 편집 한 것을 보았지만 그 문제는 거의 똑같습니다. 페이지의 모든 링크에 변수를 추가해야합니다. –

관련 문제