2012-07-29 30 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說了。」 :) – 2012-07-29 16:01:10

+0

@Alex我們應該能夠將我們的答案融合成一個共同創作的答案:)如果您願意,隨意將我的信息添加到您的答案中,那麼我會刪除我的答案。 – 2012-07-29 16:03:22

1

你將國家代碼爲小寫,但大寫播種您的陣列:

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