如何将来自不同国家的不同访问者重定向到不同的子域。像美国人一样 - us.yourdomain.com,印度 - India.yourdomain.com
问问题
764 次
3 回答
3
从这里下载 MaxMind 的 GeoIP.dat 数据库:
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz Free Version (GeoLiteCountry)
然后从这里下载 geoip.inc:
http://geolite.maxmind.com/download/geoip/api/php/php-1.11.tar.gz
提取并找到 geoip.inc 文件。
然后将这两个文件上传到页面所在的同一目录。编辑 php 页面并在其中使用此脚本:
<?php require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
$my_countries = array('us', 'ca', 'gb', 'fr', 'de', 'nl');
if (!in_array(strtolower($country), $my_countries)){
header('Location: http://www."ALL"TRAFFICURLGOESHERE.whatever');
}
else{
header('Location: http://www."SELECTEDCOUNTRIES"URLGOESHERE.whatever');
}
?>
只需更改您要在该行中定位的国家/地区代码:
$my_countries = array('us', 'ca', 'gb', 'fr', 'de', 'nl');
以及提到的目标流量和剩余流量的 URL。
国家代码可在此处找到:MaxMind - ISO 3166 国家代码
于 2012-08-31T11:11:56.857 回答
1
您最好的选择是创建一个根页面,其中包含您想要的所有国家和/或语言,并创建一个 cookie 来记住他们选择的内容。这样,他们只会看到该页面一次,前提是他们不清除 cookie。
于 2012-08-31T10:43:12.093 回答
0
我想补充一下 Nirmal 的回答,即某些服务器无法使用“Header('location:url')”
我不知道为什么,但这发生在我的现场
因此,我使用了 echo 而不是“header(location ....)”,然后使用了元刷新方法,顺便说一下,这被 seo 认为是更好的重定向。所以完整的代码是:
<?php
$website_root_path=’/path/to/root/’;require($website_root_path . ‘geoip.inc’);
$ip=$_SERVER[‘REMOTE_ADDR’];$gi=geoip_open($website_root_path . ‘GeoIP.dat’, GEOIP_STANDARD);
$country = geoip_country_code_by_addr($gi, $ip);
if ($country == ‘US’) {
}
else {
echo ‘<META HTTP-EQUIV=”Refresh” Content=”0; URL=http://non-us.hiboomedia.com”>’;
exit;
}
?>
就我而言,我只是想将非美国的任何人重定向到非美国网站。使其适应您的需求;)
于 2014-02-13T19:45:21.527 回答