1

我有一个 drupal 网站,我想根据国家/地区将访问者重定向到不同的页面。我有这个代码:

require_once "Net/GeoIP.php";
$geoip = Net_GeoIP::getInstance("Net/GeoIP.dat");
try {
    $geocode = $geoip->lookupCountryCode($_SERVER['REMOTE_ADDR']);
} catch (Exception $e) {
    $geocode = 'EN';
}
switch ($geocode) {
    case 'HU':
        header('Location: http://www.example.com/hu');
        break;
    case 'GB':
        header('Location: http://www.example.com/en');
        break;
    case 'AT':
        header('Location: http://www.example.com/at');
        break;
    case 'CY':
        header('Location: http://www.example.com/cy');
        break;
    case 'DE':
        header('Location: http://www.example.com/de');
        break;
    case 'NL':
        header('Location: http://www.example.com/nl');
        break;
    case 'CH':
        header('Location: http://www.example.com/ch');
        break;
    case 'ES':
        header('Location: http://www.example.com/es');
        break;
    case 'US':
        header('Location: http://www.example.com/us');
        break;
    default:
        header('Location: http://www.example.com/en');
}

这适用于普通的 php 文件。我怎么能在drupal中这样做?如何将访问者重定向到正确的节点?

4

2 回答 2

0

您可能想使用http://drupal.org/project/ip2locale

它支持GeoIP。

于 2010-10-07T06:16:03.853 回答
0

我也不明白为什么不使用现有的解决方案,但仍然:您是否尝试过将您的代码段放入 page.tpl.php 中?只需确保所需库的路径正确。您可能想将 Net/GeoIP.php 放在您的 sites/all/libraries 文件夹中,从而将require_once "Net/GeoIP.php"更改为require_once "../../libraries/Net/GeoIP.php"。这是假设您的 page.tpl.php 位于sites/all/themes/ yourtheme /

于 2010-10-12T14:10:43.013 回答