2016-04-14 108 views
0

我有一個應用程序,其中請求可以來自域或子域。例如:如何將所有路由從子域重定向到路徑

admin.example.com重定向到example.com/admin。我通過nginx配置實現了這一點。但問題是,對於每個環境/開發機器,我們需要設置nginx.conf。我想在鐵路線路層面做。

即從admin.example.com收到的所有請求應通過導軌路由重定向到example.com/admin。另外,我需要確保devise認證不會中斷。

routes.rb中的一個片段

Rails.application.routes.draw do 
    root 'home#index' # Domain request 

    devise_for :admins, controllers: { 
         sessions: 'admin/sessions', 
         registrations: 'admin/registrations', 
         passwords: 'admin/passwords', 
         invitations: 'admin/invitations' 
        } 
    namespace :admin do 
    devise_scope :admin do 
     root 'dashboards#show' 
     get '/contact-us' => '/home#contact_us' 

     resource :dashboard 
     resources :users, :only => [:index, :create, :update] 
     resources :admins, :customers 
     concerns :notifiable 
.. 
.. 
    end 
    end 
end 

感謝

回答

0

我想嘗試包內的約束塊的所有路由結合了「一攬子」 -route:

Rails.application.routes.draw do 
    constraints subdomain: 'www' do 
    # ... all routes routes ... 
    end 
    match '*path' => 'your_controller#your_action', via: :all 
end 

然後,控制器裏面,你將有機會獲得request.subdomainrequest.domainrequest.path等,您可以構建您的重定向到適合你需要。

相關問題