如何根据国家IP地址redirect域名

我做了一个网站,它与一些子域名; 根据国家的IP地址,用户应该被自动redirect到相应的子域名。

例如:

主要网站是abcd.com

  • 假设有一个来自印度的人input了这个urlabcd.com,
  • 那么该页面将redirect到ind.abcd.com

检查您的服务器上是否安装了mod_geoip模块( GeoIP Extension )。

然后,相应地调整.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... 

这是官方文件 。

从以下地址下载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

你可以做到这一点没有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' ) ; ?> 

如果你使用的是WordPress网站,那么它易于使用 – (地理redirect插件)。 它像魅力一样工作。 易于使用,易于实施。