【发布时间】:2016-10-10 19:21:30
【问题描述】:
编辑:开始时不是重复的。最初是如何改进或使用不同的代码来根据访问者的 COUNTRY 进行重定向。
这是我目前使用的代码:
require_once('geo/geoip.inc');
$gi = geoip_open('geo/GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
if ($country == 'FR') {
header('Location: http://fr.mysite.com');
}
if ($country == 'US') {
header('Location: http://us.mysite.com');
}
在几个静态(html + javascript)病毒式网站上,每天吸引大约 100,000 名访问者,有时更多,有时更少。
有没有更好(免费)的基于国家/地区重定向的解决方案?我最近从专用服务器切换到 VPS,当前代码似乎使用了大量 CPU 使用率(或者我的主机告诉我)。我可能会回到专用服务器,但我仍然想知道是否有更好的方法,一种不会对服务器造成太大压力的方法。
另外,因为我是根据语言重定向的:
// french
if ($country == 'FR') {
header('Location: http://fr.mysite.com');
}
//french
if ($country == 'BE') {
header('Location: http://fr.mysite.com');
}
//french
if ($country == 'CA') {
header('Location: http://fr.mysite.com');
}
//english
if ($country == 'US') {
header('Location: http://us.mysite.com');
}
//english
if ($country == 'UK') {
header('Location: http://us.mysite.com');
}
现在特别累,有什么好办法吗?这个或没有:
//english
if ($country == 'US') || ($country == 'CA') {
header('Location: http://us.mysite.com');
}
因此,从美国或加拿大访问的任何人都将被重定向到 google.com
提前致谢
【问题讨论】:
-
只需发送到 google.com,它将为您重定向到国家网站。或使用浏览器语言。
-
我的错,我只是以google为例。我会根据国家/地区将访问者发送到我网站的其他页面或子域。获取浏览器语言并重定向到适当页面的最佳方法是什么?当然,今晚晚些时候我会用谷歌搜索它,但如果你有任何建议,请告诉我。谢谢!
-
对你没有实际使用的代码投反对票
-
不知道为什么 URL 是什么很重要,但无论如何,这很酷
-
唯一的区别是数据的来源。您使用的是基于位置的,而另一个系统使用的是浏览器的首选语言。如果您考虑一下,首选语言可能比位置更好,因为居住在美国的人可能更喜欢与您的
us.mysite.com不同的语言站点,除非该站点在地理上很敏感。但我猜这是关于语言翻译的,你会从浏览器中为最终用户获得更好的信息,而不是从他们的 IP 来源国获得的信息。