我正在使用Maxmind的GeoIP重定向服务,但正如我们所知,它不是100%准确的。这就是为什么我的网站标题上有一个手动语言选择器,因此被错误地重定向到错误国家/地区的人可以更改它。
问题是向GeoIP本身添加一个例外,使手动选择器覆盖GeoIP,想不出一些办法,考虑使用cookie,但必须有更好的方法
<?php
include("geoip.inc");
$ip=$_SERVER['REMOTE_ADDR'];
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$country_code = geoip_country_code_by_addr($gi, "$ip");
geoip_close($gi);
switch($country_code) {
case "BR": header("Location: https://mysite.com/br"); break;
case "ES": header("Location: https://mysite.com/es"); break;
default: header("Location: https://mysite.com");
}
?>
Select your language:
<a href="mysite.com">English</a>
<a href="mysite.com/es">Spanish</a>
<a href="mysite.com/br">Portuguese</a>
您需要保持数据库更新以尽可能准确,您可以使用此处列出的说明完成此操作,在 IP 检测不正确的情况下,我会支持您对 cookie 的使用,我建议尽可能长时间地设置 cookie 的生命周期。