我正在开发一个服务器应用程序,其服务器端代码是在Erlang中开发的。
我面临的问题是根据国家特定域名重定向网站。
例如:当用户在消息框中输入google.co
时,它会自动显示google.co.uk
,如果我在印度,如何将其重定向到google.co.in
?
为了查找国家/地区的位置,我在github上找到了这个库:https://github.com/mochi/egeoip
如何使用此geoLocation重定向到特定国家/地区的特定网站?
ScreenShot, when I entered facebook.com
, it automatically displays preview in my local language.
但是对于我的应用程序,它会显示一些外语的预览,俄语可能。
答案 0 :(得分:0)
我已经阅读了这些评论,因为您没有考虑将数据集作为一种选择,我认为您可能想要做的是这样的事情:
首先要了解的是这些预览的工作原理。在任何(流行的)消息传递应用程序中,如果您键入URL,该应用程序将向URL发送请求并获取网站元数据。然后它将显示在UI中。
国家检测,有点复杂,并以各种方式完成。但幸运的是,你(几乎)不必做任何事情。这是一个相当长的话题,但我会尝试缩短它。
在某些网站(在您的示例中可能是Facebook的情况),他们会在应用层上进行国家/地区检测,然后根据该国家/地区,它将使用特定语言来处理网站的文本。这一切通常都发生在网站呈现内容之前,因此您不必担心它。
这个发生在DNS层,可能是最受欢迎的。可以为域名分配少量IP地址。这些IP可以指向网站的不同版本,在GeoDNS的情况下,由DNS管理员决定将国家/地区分配给IP。因此,当DNS查询来自俄罗斯时,将解析请求IP的国家/地区,然后将返回分配给它的IP(如果有)。网站特别针对特定国家/地区的功能或内容使用此功能。最好的例子是Netflix。
如果Google将您重定向到其他域,则可能就是这样做的。正在通过应用程序(HTTP)层中的IP地址解析国家/地区,然后执行301/302重定向,指向新域名。这一个,你可能需要做点什么。因此,假设您的应用程序需要对用户输入的URL执行HTTP请求,如果它返回重定向,则必须遵循它。许多HTTP库/客户端已经这样做,但在某些情况下,您可能必须明确启用该选项以遵循重定向。
需要注意的一件重要事情是在客户端执行HTTP请求。否则,无论用户身在何处,您都将解析到同一个国家/地区(服务器所在的国家/地区)。