Php 如何将不同的访问者重定向到不同的子域
如何将来自不同国家的不同访客重定向到不同的子域。像美国人一样-US.yourdomain.com,India-India.yourdomain.com你最好的选择是制作一个根页面,上面有你想要的所有国家和/或语言,并创建一个cookie来记住他们选择的内容。这样,如果他们不清除cookies,他们只会看到该页面一次。从这里下载MaxMind的GeoIP.dat数据库:Php 如何将不同的访问者重定向到不同的子域,php,web-applications,Php,Web Applications,如何将来自不同国家的不同访客重定向到不同的子域。像美国人一样-US.yourdomain.com,India-India.yourdomain.com你最好的选择是制作一个根页面,上面有你想要的所有国家和/或语言,并创建一个cookie来记住他们选择的内容。这样,如果他们不清除cookies,他们只会看到该页面一次。从这里下载MaxMind的GeoIP.dat数据库: http://geolite.maxmind.com/download/geoip/database/GeoLiteCountr
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');
}
?>
以及所提到的目标流量和rest流量的URL
国家代码可以在这里找到:MaxMind-iso3166国家代码我想在Nirmal的回答中补充一点,一些服务器不能使用“Header('location:url')” 我不知道为什么,但这件事发生在我身上 因此,我没有使用“header(location…”,而是使用了echo和meta-refresh方法,顺便说一句,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;
}
?>
在我的例子中,我只是想将任何不是美国人的人重定向到一个非美国网站。使其适应您的需要;) 不要犯谷歌的错误(好吧,所以我在西班牙,这并不意味着我想要西班牙语的谷歌,或者为居住在西班牙的人优化搜索结果,我只是在度假)。可能的重复
<?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;
}
?>