rails 3 mod用折射宝石重写

时间:2011-04-25 16:40:11

标签: ruby-on-rails ruby-on-rails-3 mod-rewrite redirect heroku

我正在尝试使用子域名beta.somedomain.com,我希望它重定向到somedomain.heroku.com/beta

我在这里使用折射宝石:

https://github.com/pivotal/refraction

但我似乎无法让它发挥作用。

尝试:

初始化器中的refraction_rules.rb

Refraction.configure do |req|
   if req.host == 'beta.somedomain.com'
     req.rewrite! "http://beta.somedomain.com/beta/#{req.path}"
   end
end

Refraction.configure do |req|
  if req.host == 'beta.somedomain.com'
    req.rewrite! "http://somedomain.heroku.com/beta/#{req.path}"
  end
end

也试过

req.permanent! :host => "beta.somedomain.com"

而不是重写

production.rb

config.middleware.insert_before(::Rack::Lock, ::Refraction)

但两种方法都不起作用,只是将我指向root'/'

1 个答案:

答案 0 :(得分:1)

您可以使用Rails 3的内置路由功能:

constraints :subdomain => "beta" do
  match "/(:page)" => redirect { |params| "http://somedomain.heroku.com/beta/#{params[:page]}" }
end

查看Rails Guides或此Rails Dispatch article以获取更多信息。