来自不同国家的不同Drupal首页

时间:2010-10-07 05:53:53

标签: php drupal redirect geoip

我有一个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中这样做? 如何将访问者重定向到正确的节点?

2 个答案:

答案 0 :(得分:0)

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

它支持GeoIP。

答案 1 :(得分: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 /