Rails Rails 怎么实现不同的域名访问的页面不同

dingfengju · 2016年12月05日 · 最后由 dingfengju 回复于 2016年12月06日 · 1760 次阅读

今天遇到一个问题,根据不同的域名,比如:ht.zzz.com 访问显示后台登录界面,qt.zzz.com 访问前台页面

我实现的办法是 在 ApplicationController 写了一个 before_action,实现了不同域名的访问,但是就是不能访问其他页面,只用 redirect to 就会报重定向死循环问题,求指导 代码如下:

case url_str
    when /^ht\./
      redirect_to :controller => '/admin_users/sessions' ,action: "new", :is_redirect_to => true  if params[:is_redirect_to].blank?
    when /^qt\./
      redirect_to :controller => '/root' ,action: "index", :is_redirect_to => true  if params[:is_redirect_to].blank?
  end

这个应该在 nginx 指定吧?

直接在 routes 里可以实现 http://guides.rubyonrails.org/routing.html#request-based-constraints

namespace :ht do
  constraints subdomain: 'ht' do
    # backend resources
  end
end

namespace :qt do
  constraints subdomain: 'qt' do
    # frontend resources
  end
end

#1 楼 @leiz_me 谢谢 之前也测试了 但是还是会出现重定向的问题

需要 登录 后方可回复, 如果你还没有账号请 注册新账号