2016-03-08 81 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