代码之家  ›  专栏  ›  技术社区  ›  jonboy

根据位置重定向某些URL

  •  1
  • jonboy  · 技术社区  · 10 年前

    我在我的(Joomla 3.4)网站上有很多到亚马逊英国的链接——这些都是买书的链接。它们基本上是“立即购买”按钮,可将用户带到相关的亚马逊英国商品页面(例如www.Amazon.co.UK/myBook)-下面的html代码

    <a class="btn btn-primary" href="http://www.amazon.co.uk/myBook...">Buy</a>
    

    我想做的是将美国游客重新引导至www.amazon.com

    <a class="btn btn-primary" href="http://www.amazon.com/myBook...">Buy</a>
    

    我知道我可以再添加一个按钮(“购买美国”),但我每页只需要一个按钮。

    我想我也许可以修改 .htaccess 文件,或添加一些javascript代码,以便将来自美国的侵权者 .com 而不是 .co.uk ?

    我在看 geoPlugin IP2Location -是否可以使用其中之一或这些来实现这一点?

    也许我可以修改IP2Location代码(如下)?

    <?php
    require_once 'IP2Location.php';
    
    $loc = new IP2Location('databases/IP-COUNTRY.BIN', IP2Location::FILE_IO);
    $record = $loc->lookup($_SERVER['REMOTE_ADDR'], IP2Location::ALL);
    
    if($record == 'US') {
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: http://amazon.com');
        exit;
    }
    ?>
    

    不确定用户服务器端如何实现这一点?

    感谢任何帮助或指导,我渴望自己学习。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Michael C.    10 年前

    您可以编辑/索引。php在Joomla中,如下所示:

    $output = ob_get_clean();
    
    require_once JPATH_LIBRARIES . '/IP2Location.php';
    
    $db = new \IP2Location\Database('./databases/IP-COUNTRY-SAMPLE.BIN');
    $records = $db->lookup($_SERVER['REMOTE_ADDR']);
    
    if($records['countryCode'] == 'US'){
          echo str_replace('www.amazon.co.uk', 'www.amazon.com', $output);
    }
    else{
          echo $output;
    }
    
    推荐文章