【问题标题】:Redirect certain urls based on location根据位置重定向某些 url
【发布时间】:2015-07-28 13:32:01
【问题描述】:

我的 (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

我正在查看 geoPluginIP2Location - 可以使用其中一个或这些来实现此目的吗?

也许我可以以某种方式修改 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;
}
?>

不确定如何通过用户服务器端包含来实现这一点?

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

【问题讨论】:

  • 您可能需要更改您的内容,以便&lt;a href 指向.com 站点。因为一旦有人点击了.co.uk 网站,它就完全不在你的掌控之中了。
  • 您可以设置一个 HTML 代理来动态更改页面内容,但问题在于内容,而不是 htaccess。如果我点击 google.com 的链接,我的浏览器会直接转到 google.com,根本不关心您的 htaccess 文件。
  • 几行代码,如果你的页面上的 JavaScript 会做你想做的事,但关闭它不是真正的 Apache 东西,除非你沿着动态页面路线走。
  • Apache HTTPD 支持SSI (Server Side Includes),但与重写无关,你想要的可以在 JS 中完成,再次与重写无关。

标签: javascript url geolocation server-side-includes


【解决方案1】:

您可以在 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-10
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    相关资源
    最近更新 更多