如何在一个域(和子)上为多个铁路应用程序服务?
-
14-10-2019 - |
题
这很奇怪,但我想在同一域上提供多个网站。如果可能的话,我们希望避免使用子域,以使我们的用户简单地将URL保持简单 - 无需他们知道它是两个单独的应用程序。这纯粹是为了使代码库分开。有任何想法吗?
例如:
Rails App 1(炼油厂CMS)服务:
Rails App 2(我们的真实应用程序)服务:
我们使用Ruby 1.9.2,Ruby在栏杆,炼油厂CMS,Apache和乘客上。
解决方案
如果您正在使用乘客,请查看 部署到子URI 该手册的一部分 - 在Sub -uri上设置应用程序非常简单。您可能需要设置 config.action_controller.relative_url_root
在您的应用程序配置中。
编辑:我误读了这个问题;每个URI不是一个应用程序,而是一个服务(但不是全部)端点的应用程序。实际上,对于一些基本的重写,这实际上很容易。
将您的Rails应用程序部署到,例如 /railsapp
(但没有设置 relative_url_root
)。现在,在.htaccess:
RewriteRule ^account/(.*)$ railsapp/account/$1 [L]
这将在内部重新映射/帐户/*到/railsapp/account/*,因此,只要您设置每条路径的重写您的Rails应用程序手柄,它就可以正常工作。
其他提示
子域使它变得更容易(因此,为什么大多数网站都有shop.example.com),但是您可能可以使用基于名称的虚拟主机路由的重写规则。我不确定如何确切地做到这一点。更多的Apache重写了Superuser的问题。
警告说,如果您使用的是SSL,您可能会出现问题。
您可以将其设置为首先击中一个应用程序,您期望大多数URL都可以正常工作,如果它可以指示下一步尝试其他应用程序,尽管这会比每条路由路由慢,但是它将不需要硬码即可在炼油厂CMS上创建的每个页面的路由。
目前,我也在研究同样的CMS。就我而言,我也需要多个子域,例如
www.test1.mydomain.com
www.test2.mydomain.com
www.test3.mydomain.com
www.test4.mydomain.com
这是我所做的
在Rails 3(如果您在Rails3上)中,可以使用请求对象获得子域。 (如果您在Rails 2.X上,则可以使用sub domain_fu插件)
就我而言,我已经使用了前过滤器获取子域
用于开发使用以下公共领域“ lvh.me”
http://tbaggery.com/2010/03/04/smack-a-ho-st.html
这对我很有用 http://railscasts.com/episodes/221-subdomains-in-rails-3
让用户将其域转发到您的子域(带有屏蔽)
例如:www.clientdomain.com-> http://client.mydomain.com
希望这可以帮助
干杯
Sameera