Перенаправление на другой сайт пользователей из-за границы. Как?

Главные вкладки

Аватар пользователя Marat Marat 5 февраля 2009 в 16:38

Добрый день.

Тут возникла задача — перенаправлять с сайта на Drupal пользователей из-за границы на другой сайт.
Соответственно вопросы появились:

1. Как запустить на выполнение код до загрузки других модулей Drupal?
2. Как определить, что пользователь из другой страны (есть ли общедоступные базы IP)?

Комментарии

Аватар пользователя Stan.Ezersky Stan.Ezersky 5 февраля 2009 в 17:37

Думаю, htaccess может помочь. Поищите информацию по нему.
Знакомый реализовывал: прописывался диапазон IP-адресов, маски, которые нужно перенаправить.

Узнать подробности не представляется возможным

Аватар пользователя HIgor1968 HIgor1968 5 февраля 2009 в 22:04

Подумай прежде чем делать. Живой пример. Наша компания Российская, но в инет заходим через спутник, и провайдер и IP в Германии, думаю что мы не одиноки. Может проще тупо определять язык броусера?

Аватар пользователя Marat Marat 31 марта 2009 в 16:07

"HIgor1968" wrote:
Может проще тупо определять язык броусера?

Но нам нужно перенаправлять именно пользователей из Европы на другой сайт.
И язык браузера может у российского гражданина стоять также английский, например.

Аватар пользователя neochief neochief 6 апреля 2009 в 2:18

1. Установите модуль ip2nation.
2. В index.php, или site/default/settings.php впишите сверху такое:

<?php

function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$country = ip2nation_get(getRealIpAddr());

$redirect_url = 'http://google.com/'; // Ссылку поменять на вашу
$europe = array('se', 'es', 'fr'); // Массив можно продолжить своими странами. Индексы — двубуквенные ISO

if (isset($europe[$country->code])) {
header('Location: '. $redirect_url);
}

?>

Код не проверял, но все должно работать.

Точность редиректа зависит от свежести базы ip2nation. Ее следует периодически обновлять с главного сайта. По моим наблюдениям, точность составляет 95%, что вполне прилично.