2014-12-31 1 views
0

도메인 용 .com의 루트에있는 미국 사이트 하나와 UK 용/uk 디렉토리에 사이트 복사본이 있습니다. 고객.원산지 국가 별 다른 웹 사이트로 리디렉션

다음은 테스트 빈 페이지를 사용할 때 잘 작동하는 코드입니다. geoplugin 클래스와 함께 사용하고 있습니다.

<?php ob_start();?> 
<?php require_once('geoplugin.class.php');$geoplugin = new geoPlugin(); ?> 
<?php $country = $geoplugin->locate();?> 

     <?php 
     $countryName= $geoplugin->countryName ; 
     $ukCountry = 'http://www.mywebsite.com/uk/'; 
     $mainSite = 'http://www.mywebsite.com/'; 


//UK 
     if ($countryName =="United Kingdom") 
      { 

        header('Location: '.$ukCountry); 
      }else{ 

        header('Location: '.$mainSite); 

?> 

위의 페이지에 include 문을 통해 연결하고 테스트로 정상적으로 작동합니다.

하지만 내가 원했던 것은 방문객이 메인 사이트를 방문한 다음 원산지를 확인하고 영국이 영국 버전 인 경우 영국 버전으로 전달할 때입니다.

나는 워드 프레스 사이트에이를 설치할하지만 난 문 제가 오류를 받고 있어요 '를 포함'배치 할 때

경고 : 헤더 정보를 수정할 수 없습니다 - 이미

I에 의해 전송 헤더를 출력 버퍼링에 대해 많이 읽었고 여러 가지 작업을 시도했지만 제대로 전달할 수는 없습니다.

나는 위의 코드로 무한 루프가 발생할 가능성을 알고 있지만이를 막으려면 else 문을 제거합니다.

기본적으로 사이트가 영국에 있는지 확인하려면 영국 사이트로 전달하면됩니다. 정상적으로 페이지를로드하는 것이 아니라면.

의견을 환영합니다.

+0

wp_redirect 함수를 빌드 해 보았습니까? http://codex.wordpress.org/Function_Reference/wp_redirect 귀하의 경우, http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php를 읽어보십시오. – FrEaKmAn

+2

다른 해결책은 아파치 다시 쓰기 규칙과 geoIP 모듈을 사용하는 것입니다. – ceadreak

+0

어디에서 WordPress 사이트에 포함 시키시겠습니까? – jeroen

답변

0

먼저 지역 타겟팅에 Maxmind을 사용할 수 있습니다. 그런 다음 word press에서 plug_in을 생성하고 work press에서 HOOK 시스템을 사용하여 init Hook으로 코드를 고정시킵니다.

+0

나는 벌써 잘 작동하는 플러그인을 사용하고있다. 이것은 오류를 일으키는 wordpress에 대한 구현이다. – JohnnyQ