Как перенаправить домен в соответствии с IP-адресом страны
Я сделал сайт с некоторыми подобластями; согласно IP-адресу страны, пользователь должен автоматически перенаправляться в соответствующий субдомен.
Пример:
Основной сайт abcd.com
- Предположим, что кто-то из Индии напечатал этот url abcd.com,
- тогда страница перенаправляется на
ind.abcd.com
Ответы
Ответ 1
Убедитесь, что на вашем сервере установлен mod_geoip модуль (Расширение GeoIP).
Затем настройте файл .htaccess
соответственно:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat
# Start Redirecting countries
# Canada
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$
RewriteRule ^(.*)$ http://ca.abcd.com$1 [L]
# India
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^IN$
RewriteRule ^(.*)$ http://in.abcd.com$1 [L]
# etc etc etc...
И здесь официальная документация.
Ответ 2
Загрузите класс geoPlugin из:
http://www.geoplugin.com/_media/webservices/geoplugin.class.phps
Поместите файл index.php в корневую папку:
<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
// create a variable for the country code
$var_country_code = $geoplugin->countryCode;
// redirect based on country code:
if ($var_country_code == "AL") {
header('Location: http://sq.wikipedia.org/');
}
else if ($var_country_code == "NL") {
header('Location: http://nl.wikipedia.org/');
}
else {
header('Location: http://en.wikipedia.org/');
}
?>
Вот список кодов стран:
http://www.geoplugin.com/iso3166
Ответ 3
Вы можете сделать это без require_once('geoplugin.class.php');
следующим образом:
<?php
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));
$countrycode= $a['geoplugin_countryCode'];
if ($countrycode=='US')
header( 'Location: http://example1.com' ) ;
else
header( 'Location: http://example2.com' ) ;
?>
Ответ 4
Если вы используете веб-сайт WordPress, его легко использовать - (плагин Geo Redirect). Он работает как шарм. Прост в использовании, легко реализуется.