如何识别国家并相应地更改 URL

Posted

技术标签:

【中文标题】如何识别国家并相应地更改 URL【英文标题】:How to identify the country & change the URL accordingly 【发布时间】:2011-09-24 06:08:43 【问题描述】:

我们有三个域,一个用于美国,一个用于英国,一个用于加拿大。我希望我的用户应该自动重定向到国家特定的 URL,无论他们打开什么域。例如如果用户来自美国并且他正在打开 example.co.uk,那么他/她应该被重定向到 example.com。

【问题讨论】:

这里只提一句警告:作为用户,我发现这种行为非常烦人且非常粗鲁:我想负责我的电脑,虽然我很感谢软件的帮助,但我不保留控制权让我感到失落。考虑您的用户是否会有同样的感受。 搜索“ip to country”,您会发现提供的各种技术。 【参考方案1】:

您可以尝试通过 IP 来识别国家。例如见http://www.ip2location.com/ 这不会涵盖所有人,但在大多数情况下应该没问题。

【讨论】:

【参考方案2】:

有两种选择: 1) 使用MultiViews 选项配置您的网络服务器以查找浏览器设置并显示适当的页面。 2) 使用mod_rewrite / .htaccess 并根据Accept-Language HTTP 标头重定向用户。

完整详情,请看答案here。谢谢。

【讨论】:

【参考方案3】:

我正在为我的一位客户寻找类似的解决方案。幸运的是,我们使用的是 Wordpress,并且能够使用这个插件 http://wordpress.org/extend/plugins/ip2country/ 来制作特定国家/地区的内容条件和模板。这个插件利用了在这里找到的 Geolite http://dev.maxmind.com/geoip/geolite 希望这会有所帮助。

【讨论】:

【参考方案4】:

康拉德的评论再怎么强调也不过分。除了重定向之外,您是否可以为用户提供重定向 - 或者如果您只是重定向发送横幅,告诉他们被重定向并询问他们是否希望不被重定向?如果他们选择了,他们不想被重定向,你将他们重定向回来,并通过 URL 中的额外子句或 cookie 确保他们不会再次被重定向。

只有一个故事来说明烦恼:我的新滚刀坏了。我无法访问 Electrolux.com。我被重定向到 Electrolux.ch。似乎有一个疑难解答,但链接已损坏。 .ch 站点肯定不是他们的主要开发方面,德语也不是他们的主要站点语言。该链接可能在英文 .com 下有效,但伊莱克斯不允许我对其进行测试。

或者,如果我在某个国家/地区并且不会说该国家/地区的语言,因此希望留在原始 URL 并使用该语言?

或者,我认为我在另一个国家的表弟向我发送了一个 .com 链接而我无法打开它?

有很多烦人的场景。

【讨论】:

这更像是讨论/评论,而不是答案,afaict。如果您支持另一个答案,我建议您在其下添加评论。

以上是关于如何识别国家并相应地更改 URL的主要内容,如果未能解决你的问题,请参考以下文章

js获取浏览器语言识别国家

模式识别国家重点实验室(中国科学院自动化研究所)的简要概况

Top10唯一中国团队!数相名列Kaggle图像识别国际大赛第七

如何从 Paypal 取回数据,以便相应地更改我的 MySQL 数据库?

读取 DOM(网页)中的位置并相应地更改导航菜单类

如何更改默认的Laravel Auth登录视图