如何在一个域(和子)上提供多个rails应用程序?

chr*_*mer 2 apache ruby-on-rails passenger refinerycms

这有点奇怪,但我想在同一个域上提供多个网站.如果可能的话,我们希望避免使用子域名来保持用户的网址简单 - 不需要他们知道它是两个独立的应用程序.这纯粹是为了保持代码库分开.有任何想法吗?

例如:

Rails App 1(Refinery CMS)服务:

http://example.com/

http://example.com/about

http://example.com/pricing

Rails App 2(我们真正的应用程序)服务:

http://example.com/account

http://example.com/store

http://example.com/listings

我们使用ruby 1.9.2,ruby on rails,炼油厂cms,apache和乘客.

Chr*_*ald 11

如果您正在使用Passenger,请查看本手册的" 部署到子URI"部分 - 在子URI上设置应用程序非常简单.您可能还需要config.action_controller.relative_url_root在应用配置中进行设置.

编辑:我误解了这个问题; 每个URI不是一个应用程序,而是一个为一些(但不是全部)端点提供服务的应用程序.对于一些基本的重写,这实际上也很容易.

比方说,将你的Rails应用程序部署到/railsapp(但没有设置relative_url_root).现在,在.htaccess中:

RewriteRule ^account/(.*)$ railsapp/account/$1 [L]
Run Code Online (Sandbox Code Playgroud)

这将在内部重新映射/帐户/*到/ railsapp/account/*,因此只要您设置Rails应用程序处理的每个路径的重写,它应该可以正常工作.