2012-07-29 2 views
0

특정 국가의 사용자를 다른 언어로 리디렉션하고 싶습니다. 따라서 MaxMind의 GeoIPv6.dat와 geoip.inc를 내 웹 페이지의 폴더에 업로드했습니다.MaxMind GeoIP가 모든 것을 리디렉션합니까?

나는 index.php에의 헤더에 다음 스크립트를 사용하고 있습니다 :

<?php 

require_once('geoip.inc'); 

$gi = geoip_open('GeoIPv6.dat', GEOIP_MEMORY_CACHE); 
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']); 
geoip_close($gi); 

$my_countries = array('AT', 'DE'); 
if (!in_array(strtolower($country), $my_countries)) 
{ 
header('Location: http://www.de.mywebsite.com'); 
} 
else 
{ 
header('Location: http://www.mywebsite.com'); 
} 
?> 

이상하게도, 스크립트가 de.mywebsite.com을 모두 전달? 왜 그런가요? 이 문제를 어떻게 해결할 수 있습니까?

도움 주셔서 감사합니다.

답변

1

(독일 및 오스트리아에서 방문자 제외)을 제외한 모든 방문자가 독일 사이트로 리디렉션됩니다.

당신은 아마 상황을 반전 느낌표없이

if (in_array(strtolower($country), $my_countries)) 

를 원한다.

오, 또한 @Alex가 대답 한 내용.

+1

LOL, 나는, 게시 막이었다 "너무, 오, 그래, @Pekka의 말씀." :) –

+0

@Alex 우리는 우리의 답변을 하나의 공동 저서로 융합시킬 수 있어야합니다 :) 원하는 경우 내 정보를 자유롭게 추가하여 기꺼이 삭제할 것입니다. –

1

당신은 국가 코드는 소문자로 변환하지만, 대문자와 배열을 파종하고 있습니다 :

$my_countries = array('AT', 'DE'); 
if (!in_array(strtolower($country), $my_countries)) 
관련 문제