2016-03-08 42 views
0

我想创建一个位置特定的重定向到一个子域。我的网站是au.example.co,我在澳大利亚。我们在世界各地的其他地方都有许可合作伙伴,我希望能够创建一个区域特定的重定向。例如新加坡是sg.example.co和英国uk.example.co等。我希望这些国家的用户能够简单地输入url,example.co并根据它们的位置将其重定向到该区域网址。每个子域名都是托管在heroku上的自己的Rails应用程序。位置特定的URL重定向到子域

回答

0

有一个名为Ruby Geocoder的红宝石库,在这样的场景中很有用。

从他们的网站直接他们提到以下几点:

在任何基于机架的框架检测HTTP请求的位置

获取当前用户所在的城市和国家(使用IP地址)。甲位置 方法被添加到标准机架::请求返回一个 地址解析器::结果对象:

在滑轨控制器或屈应用

城市= request.location.city

国家= request.location.country_code

使用上述内容,假设您可以基于国家/地区变量重定向到适当的子域名是合理的。

关于这个问题也有一个RailsCast这可能对你有帮助。 我也发现这个修改后的RailsCast子域上,我认为也可能是有帮助的,但我没有订阅...

+0

感谢您的答复@蚂蚁乐趣。我看了一下这个宝石,它看起来很有用,但我失去了如何实现它。实际的URL example.co没有任何内容,因此没有任何应用可以使用它。纯粹用于用户输入,然后重定向到该位置的特定rails应用程序(example.co的子域)。有任何想法吗? – RuNpiXelruN

+0

我错过了关于它是它自己的单个rails应用程序抱歉的部分。如果目标是根据访问域example.co的用户简单地重定向,一个潜在的解决方案是编写一个简单的机架/ sintra/rails应用程序,该应用程序仅处理路由并将其托管在heroku上。 – christoshrousis