0

我想将用户从特定国家重定向到另一种语言。因此,我在我的网页文件夹中上传了 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?这是为什么?我该如何解决这个问题?

谢谢你的帮助!!!

4

2 回答 2

1

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

你可能想要

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

没有反转条件的感叹号。

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

于 2012-07-29T15:59:51.993 回答
1

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

$my_countries = array('AT', 'DE');
if (!in_array(strtolower($country), $my_countries))
于 2012-07-29T15:59:59.793 回答