我正在使用Maxmid geoip脚本(php)根据用户的位置重定向用户(www.mysite.com - 就此问题而言)。英国访问者将访问英国网站,而其他人将留在当前网站。但是,我也想设置一个例外,只为我的ip,以便我能够查看两个站点(假设我的IP与文件中给出的匹配 - 我位于英国)。下面是我的编码,它对“异常ip”无效。
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/geoip/geoip.inc");
$gi = geoip_open($_SERVER['DOCUMENT_ROOT']."/geoip/GeoIP.dat", GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
$useragent_country = array('gb');
$exception_ip = "80.47.200.21";
if (in_array(strtolower($country), $useragent_country)){
header('location: http://www.mysite.co.uk');
exit();
}
if ($_SERVER['REMOTE_ADDR'] = $exception_ip){
header('location: http://www.mysite.com');
}
?>
此外,为了在当前网站上保留“异常ip”,我的编码是否正确?
答案 0 :(得分:0)
我最后做到了。将异常ip放入数组意味着我可以添加任意多个。此外,$uri
表示在重定向时它将转到相同的路径:
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/geoip/geoip.inc");
$gi = geoip_open($_SERVER['DOCUMENT_ROOT']."/geoip/GeoIP.dat", GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
$useragent_country = array('gb');
$uri = $_SERVER['REQUEST_URI'];
$exception_ip = array("1.2.3.4.5");//ADD IPs here in array form
if(in_array($_SERVER['REMOTE_ADDR'], $exception_ip)){
//do nothing
}
else{
if (in_array(strtolower($country), $useragent_country)){
header('location: http://www.mysite.co.uk$uri');//redirect to same path
exit();
}
}
?>