【问题标题】:MaxMind GeoIP redirects everything?MaxMind GeoIP 重定向一切?
【发布时间】:2012-07-27 11:29:30
【问题描述】:

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

感谢您的帮助!!!

【问题讨论】:

    标签: php redirect geoip


    【解决方案1】:

    您将所有除了来自德国和奥地利的访问者重定向到德国网站。

    你可能想要

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

    没有用于反转条件的感叹号。

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

    【讨论】:

    • 哈哈,我正要发帖,“哦,是的,@Pekka 也是这么说的。” :)
    • @Alex 我们应该能够将我们的答案融合到一个共同撰写的答案中:) 如果需要,请随时将我的信息添加到您的答案中,然后我会删除我的。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      相关资源
      最近更新 更多