根据位置重定向某些网址

Redirect certain urls based on location

我的 (Joomla 3.4) 网站上有许多指向 Amazon UK 的链接 - 这些是购买书籍的链接。它们基本上是 'Buy Now' 按钮,可将用户带到相关的亚马逊英国商品页面(例如 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>

我知道我可以再添加一个按钮 ('Buy US'),但我只希望每页有一个按钮。

虽然我可以修改 .htaccess 文件,或者添加一些 javascript 代码,这样来自美国的访问者将被带到 .com 而不是 .co.uk

我正在查看 geoPlugin and 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;
}
?>

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

感谢任何帮助或指导,我很想自学。

您可以在 Joomla 中编辑 /index.php 如下:

$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;
}