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

例如:

Rails App 1(炼油厂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在栏杆,炼油厂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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top