0

我有www.a.comwww.b.com運行兩個單獨的應用程序。第二個是rails-3應用程序。爲了通過共享cookies在兩者之間獲得一些通用登錄,我將www.a.com/b上的所有請求重定向到www.b.com。我使用apache的反向代理來實現這一目標:如何讓Rails應用程序在兩個領域的工作,反向代理

ProxyPass /b/ http://www.b.com/ 

這工作得很好除了所有的資產/ JavaScript的聯繫日益假設www.a.com是根形成的事實。 例如:

<%= javascript_include_tag 'js/bootstrap-datepicker'%> 

是導致鏈接http://a.com/assets/js/bootstrap-datepicker.js,而我希望這是http://a.com/b/assets/js/bootstrap-datepicker.js

我這樣做解決這個:

config.action_controller.asset_host = "http://a.com/analytics" 

這工作得很好,即使我找到解決方案有點怪異。 當我在應用程序中放入其他頁面的鏈接時,真正的問題就開始了。所以爲了把一個名爲page的頁面鏈接,我需要把b/page放在我的href中。當我使用a.com訪問應用程序時,這工作正常。但是這不允許我使用b.com訪問應用程序,因爲鏈接開始指向www.b.com/b/page,這顯然不存在。

我怎樣才能使整個事情工作,以便我可以使用a.com或b.com訪問我的應用程序。

回答

0

您的問題的替代解決方案,使用子域名和CNAME/ALIAS而不是反向代理。

相反反向代理a.com/b對b.com。您可以使用DNS中的CNAME/ALIAS將new.a.com指向在b.com上運行的應用程序。

將Cookie域設置爲a.com而不是www.a.com,以便Cookie跨子域共享。

配置/初始化/ session_store.rb

YouApplicationName::Application.config.session_store :cookie_store, key: 'some_key', :domain => ".a.com" 
相關問題