我们基本上有 2 个站点(Java /JSP / Apache Webserver):something.ca & something.com
.ca 是加拿大内容,.com 是美国内容。
我们需要根据 IP 地址重定向用户。我们希望美国用户获得 .com 网站,而加拿大用户获得 .ca 网站。
最好的方法是什么(在网络服务器级别或其他级别)?
请详细说明。
我们基本上有 2 个站点(Java /JSP / Apache Webserver):something.ca & something.com
.ca 是加拿大内容,.com 是美国内容。
我们需要根据 IP 地址重定向用户。我们希望美国用户获得 .com 网站,而加拿大用户获得 .ca 网站。
最好的方法是什么(在网络服务器级别或其他级别)?
请详细说明。
在我的网上冲浪体验中,大多数网站 - 例如 UPS.com - 要求用户选择他们的国家网站,而不是试图自己弄清楚。他们记得 cookie 中的选择。很大程度上取决于您的用例需要这种重定向的自愿程度。
在实现方面,我会使用一个过滤器来检查设置并在需要时触发重定向。
我使用了 Maxmind 的 GeoIP,它运行良好。他们有一个免费版本的 GeoCountry Lite,准确率为 99.3%。Java API 就在这里,如果您进行重定向, 我将遵循谷歌的做法,将链接返回到原始版本。
查看地理方向。它可以通过javascript处理你想要的。
http://www.geobytes.com/GeoDirection.htm
另一种选择是从浏览器环境设置中获取文化并将这些文化映射到应用程序中的国家/地区。根据您实际尝试执行的操作,这可能对您不起作用,因为这不会为您提供用户的实际位置,但会为您提供他们喜欢的文化。因此,如果加拿大人去美国旅行,除非他们出于某种原因更改了浏览器设置,否则他们仍然会访问加拿大网站。
那里有很多IP 地理定位 API - 我不知道那里是否有什么好东西不需要您付费:
使用文化设置是一种选择,但在某些情况下不起作用。如果您在美国有一个德国用户喜欢他的日期等以他喜欢的格式显示怎么办?改变不了他在美国的事实。
我认为这就是为什么大多数公司只是简单地询问用户然后将该信息存储在 cookie 中的原因之一(UPS、FedEx 和大多数主要航空公司都这样做)。查看 www.lufthansa.com。他们实际上要求提供位置和语言(以考虑到像瑞士这样拥有不止一种官方语言的国家)。