MaxMind GeoIP重定向一切?

时间:2012-07-29 15:56:30

标签: php redirect geoip

我想将用户从特定国家/地区重定向到另一种语言。 因此,我已将MaxMind的GeoIPv6.dat和geoip.inc上传到我的网页文件夹中。

我在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?这是为什么?我该如何解决这个问题?

感谢您的帮助!!!

2 个答案:

答案 0 :(得分:1)

您正在将以外的所有访客从德国和奥地利重定向到德国网站。

你可能想要

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

没有反转条件的感叹号。

哦,还有@Alex在他的回答中说的话。

答案 1 :(得分:1)

您正在将国家/地区代码转换为小写,但是使用大写字母为您的数组播种:

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