Я хочу отследить страну посетителей и затем перенаправить их к соответствующим субдоменам моего сайта как то, что делает Google...
И до того, какая степень я могу полагаться на данные API, если я должен использовать кого-либо?..
Я использую php..
Загрузите и установите База данных Maxmind GeoLite Country , точность которой составляет 99,5%. Вы можете заплатить за обновление до платной версии с заявленной точностью 99,8%. Существует четыре варианта использования базы данных из PHP:
У всех этих опций есть метод получения кода страны. Я не буду включать опцию SQL, но вы можете получить дополнительную информацию здесь .
Чистый PHP4:
include("geoip.inc");
$gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_STANDARD);
$code = geoip_country_code_by_addr($gi, "24.24.24.24");
Расширение PECL PHP:
$code = geoip_country_code_by_name($_SERVER['REMOTE_ADDR']);
Модуль Apache:
$code = apache_note("GEOIP_COUNTRY_CODE");
Затем вы можете перенаправить на основе этих кодов, используя перенаправление HTTP:
$redirect = array("AU" => "http://australia.example.com", "NZ" => "http://newzealand.example.com")
$url = $redirect[$code]
header("Location: $url");
Однако это вызывает два HTTP-запроса и поэтому неоптимально . Лучше использовать модуль Apache для перезаписи в вашем файле .htaccess
:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat
# Redirect one country
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA
RewriteRule ^(.*)$ http://www.canada.com$1 [L]
# Redirect multiple countries to a single page
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CA|US|MX)$
RewriteRule ^(.*)$ http://www.northamerica.com$1 [L]
Конечно, возможно, лучший способ сделать это - попросить кого-нибудь сделать это за вас по адресу уровень DNS. Быстрый поиск показал эту компанию , (я не знаю, хороши они или нет), несомненно, есть и другие. Вот как это делает Google.
В зависимости от степени детализации, которую вы хотите разделите "мир" вашего клиента и количество возможных целей (поддоменов), которые вы можете использовать данные, предоставленные в базе данных IP-адрес страны или Free Geolocation Database MaxMind.com, поместите его в таблицу SQL, а затем используйте небольшой скрипт для поиска IP-адреса посетителя и перенаправления при необходимости.
Данные никогда не будут точными на 100%, особенно если кто-либо из ваших посетителей получает доступ к вашему сайту через прокси-серверы или другие анонимизаторы (в этом случае IP-адрес, который вы видите, не является их истинным адресом). Если вы все же реализуете это, я бы посоветовал разрешить пользователю исправить (или просто переопределить) региональное перенаправление.