У меня было два домена. rajasekar.com и rajasekar.in. Что мне нужно сделать, так это то,
когда пользователь из Индии вводит URL-адрес в адресной строке как www.rajasekar.com, тогда он должен открыть www.rajasekar.in
Когда пользователь из других стран вводит URL-адрес в адресной строке как www.rajasekar.com, он должен открыть www.rajasekar.com
Я думаю, что это то, что реализовано в GOOGLE. Пожалуйста, помогите мне в достижении этого
Вы можете попытаться угадать страну на основе удаленного адреса пользователя.
Следующее – это рабочее решение, вам придется работать с логикой перенаправления:
$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.
это может помочь, http://www.maxmind.com/app/geoip_country
В ASP.NET получите IP-адрес клиента, используя:
Request.ServerVariables("REMOTE_ADDR")
Используйте некоторый IP-адрес для службы определения географического местоположения, например:
Как только вы получите страну, вы можете легко перенаправить пользователя:
Response.Redirect("http://www.yourdomain.in")
Заголовок запроса Accept-Language укажет вам, на каком языке / регионе пользователь имеет свой браузер.
Вместо (или, по крайней мере, в дополнение к), глядя на страну IP-адреса, вы должны проверить HTTP-заголовок Accept-Language
( $_SERVER['HTTP_ACCEPT_LANGUAGE']
в PHP)
Этот заголовок обычно содержит пары языковой пары:
en-US, hi_IN, fr, de;q=0.5
У PHP intl extension есть методы, которые помогают его разбор .
Обычные пользователи не имеют возможности изменять свой IP-адрес или как их адрес классифицируется в IP-гео-базах данных. Гораздо более вероятно, что пользователи могут выбирать / настраивать язык своей операционной системы / браузера, что влияет на заголовок Accept-Language
.
Существуют прокси-серверы ISP, которые находятся в стране, отличной от пользователя, например, AOL маршрутизирует некоторый международный трафик через США, многие мобильные пользователи используют Opera Mini с прокси-серверами в Норвегии. Если вы ищете IP-адрес, по крайней мере, X-Forwarded-For
заголовок X-Forwarded-For
. Заголовок Accept-Language
передается через прокси без таких проблем.
Я использовал базу данных hostip.info и обнаружил, что она неполна и содержит ошибки. Также подумайте, что каждый раз, когда HTTP-запрос на сторонний PHP-скрипт будет замедлять работу вашего сайта и тратить ресурсы, он будет тратить время. Разбор заголовка Accept-Language
по существу свободен.
Если вы не хотите просто страны, но говорят языки, то IP → Страна не будет точным для стран, где говорят на разных языках. Accept-Language
может предоставить вам более точную информацию (например, nl_BE
для голландцев в Бельгии, fr_CA
для канадских французов).
Ни один из методов не является 100% правильным, поэтому было бы разумно позволить пользователям отменить выбор.
Также имейте в виду, что если вы принудительно перенаправляете «правильный» домен, тогда боты поисковых систем не смогут индексировать все ваши домены, поскольку они, скорее всего, будут поступать с IP-адреса США и не будут указывать предпочтительный язык. Лучше не применять обнаружение к доменам, отличным от .com
, и / или не применять его на других страницах, кроме главной страницы.