Как показать другую домашнюю страницу в зависимости от страны пользователя? - PullRequest
2 голосов
/ 23 января 2010

У меня было два домена. rajasekar.com и rajasekar.in. Что мне нужно сделать, это,

когда пользователь из Индии вводит URL-адрес в адресной строке как www.rajasekar.com, тогда он должен открывать www.rajasekar.in

Когда пользователь из другой страны вводит URL-адрес в адресной строке как www.rajasekar.com, он должен открыться www.rajasekar.com

Я думаю, что это то, что реализовано в GOOGLE. Пожалуйста, помогите мне в достижении этого

Ответы [ 5 ]

2 голосов
/ 23 января 2010

В ASP.NET получите IP-адрес клиента, используя:

Request.ServerVariables("REMOTE_ADDR")

Использование IP-адреса для определения местоположения, например:

  1. Maxmind
  2. IPAddressExtentions

Получив страну, вы можете легко перенаправить пользователя:

 Response.Redirect("http://www.yourdomain.in")
2 голосов
/ 23 января 2010

это может помочь, http://www.maxmind.com/app/geoip_country

1 голос
/ 23 января 2010

Заголовок запроса Accept-Language скажет вам, на каком языке / регионе у пользователя установлен браузер.

1 голос
/ 23 января 2010

Вы можете попытаться угадать страну на основе удаленного адреса пользователя.

Ниже приведено рабочее решение, хотя вам придется работать с логикой перенаправления:

$remoteAddr = $_SERVER['REMOTE_ADDR'];
$lookupUrl = sprintf('http://api.hostip.info/country.php?ip=%s', $remoteAddr);
$country = trim(file_get_contents($lookupUrl));

if ('IN' === $country)
{
    $newUrl = 'http://www.rajasekar.in/';

    header(sprintf('Location: %s', $newUrl));
    printf('<a href="%s">Moved.</a>', $newUrl);
    exit();
}

Позаботьтесь о том, чтобы поисковые роботы из Индии могли сканировать и контент .com.

0 голосов
/ 02 января 2012

Вместо (или, по крайней мере, в дополнение к) просмотру страны IP-адреса, вы должны проверить Accept-Language HTTP-заголовок ($_SERVER['HTTP_ACCEPT_LANGUAGE'] в PHP)

Этот заголовок обычно содержит пары язык-страна:

en-US, hi_IN, fr, de;q=0.5

В расширении PHP intl есть методы, которые помогают его анализировать .

Проблемы с поиском IP:

  • Обычные пользователи не имеют возможности изменить свой IP-адрес или то, как их адрес классифицируется в базах данных IP-geo. Гораздо более вероятно, что пользователи смогут выбирать / настраивать язык своей операционной системы / браузера, что влияет на заголовок Accept-Language.

  • Есть прокси-провайдеры в стране, отличной от пользователя, например, AOL направляет некоторый международный трафик через США, многие мобильные пользователи используют Opera Mini с прокси-серверами в Норвегии. Если вы ищете IP, по крайней мере, примите во внимание заголовок X-Forwarded-For. Заголовок Accept-Language пропускается через прокси без таких проблем.

  • Я использовал базу данных hostip.info и обнаружил, что она неполная и содержит ошибки. Также учтите, что выполнение HTTP-запроса к стороннему PHP-скрипту каждый раз будет тормозить ваш сайт и тратить его ресурсы. Разбор заголовка Accept-Language по сути бесплатный.

  • Если вы не хотите, чтобы просто страна, а языковые пользователи говорили, тогда IP → Страна не будет точной для стран, где говорят на разных языках. Accept-Language может дать вам более точную информацию (например, nl_BE для голландского в Бельгии, fr_CA для канадского французского).

Ни один из этих методов не является правильным на 100%, поэтому было бы целесообразно разрешить пользователям отменять ваш выбор.

Также имейте в виду, что если вы принудительно перенаправите на «правильный» домен, то боты поисковых систем не смогут проиндексировать все ваши домены, так как они, скорее всего, будут поступать с IP-адреса США и не будут указывать предпочтительный язык. Лучше , а не применять обнаружение к доменам, отличным от .com, и / или не применять его к страницам, отличным от домашней страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...