【问题标题】:Rails 3 Subdomain For Existing Rails Application现有 Rails 应用程序的 Rails 3 子域
【发布时间】:2012-10-22 18:11:20
【问题描述】:

我最近的任务是将我现有的 Rails 3 应用程序分离为标准和高级版本。高级版将具有所有现有功能,并添加新布局和新功能。理想情况下,我希望高级用户通过在当前 url 前加上子域来访问该站点,例如“premium.somesite.com”/ 我不想更改的网站的标准版本,仍然可以通过默认 url 访问.

如果可能的话,我想简单地向退出视图和控制器添加一些逻辑,以确定如何处理请求是否正在使用子域。

我尝试关注 Railcast subdomains in rails 3,但是他在博客模型和数据库属性的上下文中使用子域,而我希望我的域是应用程序范围的。这甚至可能与子域?我该如何开始?


我的尝试:

在乘客使用的我的 apache httpd.conf 文件中添加了一个额外的 VirtualHost:

<VirtualHost *:80>
  ServerName premium.mydomain.com
  DocumentRoot /somewhere/../myapp
  <Directory /somewhere/public>
    Allow from all
    Options -Multiviews
  </Directory>
</VirtualHost>

在我的 routes.rb 中添加了以下内容

class PremiumSubdomain
  def self.matches?(request)
    request.subdomain == "premium"
  end
end

MyApp::Application.routes.draw do    
  constraints(PremiumSubdomain) do    
    #all of my routes...    
  end    
end

会发生什么:

尝试使用高级子域导航到我的站点会导致找不到域,将约束添加到我的 route.rb 会阻止应用程序的其余部分在我的默认 URL 上呈现任何内容。

【问题讨论】:

    标签: ruby-on-rails-3 routing subdomain


    【解决方案1】:

    所以事实证明,虽然我确实在 apache 上正确配置了所有内容,但我们正在为我们的 DNS 服务器使用第三方,所以只需为我们的子域添加一条记录,其他一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 2014-01-02
      相关资源
      最近更新 更多