我想将用户从特定国家/地区重定向到另一种语言。 因此,我已将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?这是为什么?我该如何解决这个问题?
感谢您的帮助!!!
答案 0 :(得分:1)
您正在将除以外的所有访客从德国和奥地利重定向到德国网站。
你可能想要
if (in_array(strtolower($country), $my_countries))
没有反转条件的感叹号。
哦,还有@Alex在他的回答中说的话。
答案 1 :(得分:1)
您正在将国家/地区代码转换为小写,但是使用大写字母为您的数组播种:
$my_countries = array('AT', 'DE');
if (!in_array(strtolower($country), $my_countries))