Перенаправление на страницу, в зависимости от страны посетителя [Решено]

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

Аватар пользователя NX-74205 NX-74205 11 июня 2010 в 21:54

Есть две версия сайта Английская и русская. Нужно сделать так, чтобы допустим если пользователь заходит из сша, ему сразу была видна английская версия сайта.
Для определения страны из айпишника использую http://drupal.org/project/ip2cc
соотвественно код страны получаю так
$addr = ip_address();
$c = ip2nation_get($addr);
$ccc = $c->country;
В переменной $ccc после этого находиться двухбуквеный код страны (US,RU итд) нужно сделать так, чтобы когда код был US то происходил автоматический редерект на www.site.com/en
а когда RU, соответственно на www.site.com/ru
Как реализовать такое? Заранее благодарен за любую подсказку.

Комментарии

Аватар пользователя NX-74205 NX-74205 12 июня 2010 в 17:28

написал небольшой модуль для этой цели. Использовал GeoApi подключенный к nginx

<?php
/**
* Implementation of hook_init().
*/
function redirect_to_init() {
  global 
$language;
  global 
$base_url;
  
  if (
$_SERVER['SCRIPT_NAME'] != $GLOBALS['base_path'] .'index.php') return FALSE;

  

/**
   * если сервер офлайн то перенаправляем на 503 ошибку
   */
  
if (variable_get('site_offline'0) == 1) return FALSE;

  

/**
   * работает только если пользователь пришел с другого сервера
   */
  
if (strpos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME'])) return FALSE;
  
 
  if (
drupal_is_front_page()) { // только для главной страницы
  
  
  
  
   // Получаем префикс. если префикса нету устанавливаем его значение в NULL
    
$query_string drupal_query_string_encode($_GET, array('q'));
    if (empty(
$query_string)) {
      
$query_string NULL;
    }

    

$options = array('prefix' => '');
    if (
function_exists('language_url_rewrite')) {
      
$path $_REQUEST['q'];
      
language_url_rewrite($path$options);
    }
    
$prefix rtrim($options['prefix'], '/');
    
$cc=getenv('GEOIP_CITY_COUNTRY_NAME');
    if(
$cc=='United States'&&$prefix!='en')
    {
        
drupal_goto($base_url .'/en'$query_stringNULL303); // перенаправляем
        
return;
    }
}
}
?>