GEOIP SCRIPT 转发部分不工作

Posted

技术标签:

【中文标题】GEOIP SCRIPT 转发部分不工作【英文标题】:GEOIP SCRIPT Forwarding Part not working 【发布时间】:2014-02-05 19:56:46 【问题描述】:

我有一个很小的脚本,但其中有错误,希望有人能花 2 分钟时间轻松修复。

我在做什么...我有网站,称之为 website.com。主页上有链接。链接将把人带到 website.com/link

website.com/link 页面是脚本。脚本是使用 geoip 来确定人是来自美国、英国还是其他国家。

我想要它做的是将来自美国的人转发到 URL1,如果他们来自英格兰,将人转发到 URL2,或者如果他们来自其他任何地方,将人转发到 URL3。

脚本中不工作的部分是转发部分。我知道 GEOIP 脚本部分可以正常工作,因为我使用 IMAGE1、IMAGE2 和 IMAGE3 对其进行了测试,并且工作正常。所以问题是更改脚本,以便将人员转发到另一个 URL。

这是脚本。

<?php

require_once(ABSPATH.'geoip.inc');
$gi = geoip_open(ABSPATH.'GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
if($country=='US')
    echo '<?php
header( 'Location: http://www.google.com'; ) ;
?>';
elseif($country=='GB')
    echo '<?php
header( 'Location: http://www.bing.com'; ) ;
?>';
else
    echo '<?php
header( 'Location: http://www.yahoo.com'; ) ;
?>';

?> 

【问题讨论】:

echo '&lt;?php - 这是什么?! 【参考方案1】:

也许这足以重定向:

<?php
require_once(ABSPATH.'geoip.inc');

$gi = geoip_open(ABSPATH.'GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);

if ($country=='US') 
    header('Location: http://www.google.com');
elseif ($country=='GB') 
    header('Location: http://www.bing.com');
else 
    header('Location: http://www.yahoo.com');
?>

【讨论】:

1.什么返回print_r($country)? 2.你看到任何错误吗? 3.在这部分之前你有任何输出吗,例如echo?【参考方案2】:

让我们添加 exit()。

<?php
    require_once(ABSPATH.'geoip.inc');

    $gi = geoip_open(ABSPATH.'GeoIP.dat', GEOIP_MEMORY_CACHE);
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);

    if ($country=='US')
    
    header('Location: http://www.google.com');
    exit();
  
    elseif ($country=='GB') 
    
        header('Location: http://www.bing.com');
    exit();
    
    else
    
        header('Location: http://www.yahoo.com');
    
?>

【讨论】:

以上是关于GEOIP SCRIPT 转发部分不工作的主要内容,如果未能解决你的问题,请参考以下文章

尝试更新 geoip 得到错误 -21 - 它一直在工作直到最近

在 Apache 2.2.17 中让 mod_geoip 与 mod_wsgi 一起工作

Django GeoIP按城市名称获取国家

Nginx的GeoIp模块的应用与使用

路由转发小实验

Javascript 不会在 Firefox geoip_city() 中显示