如何将子域重定向到 Rails 中具有相同 url 的域
How to redirect Subdomain to domain with same url in Rails
我已经在我的应用程序中安装了 gem rails_admin 现在我想重定向这个 url eritheia-labs.localhost:3000/admin/dashboard 到 localhost:3000/admin/dashboard
我想通过 localhost:3000/admin 而不是 eritheia-labs.localhost:3000/admin 访问 rails admin 或者如果输入这个 url 它将把我重定向到 localhost:3000/admin
您可以将以下内容添加到您的 config/routes.rb
constraints(host: "eritheia-labs.localhost") do
match '/admin/(*path)' => redirect { |params, req|
"http://localhost:3000#{req.fullpath}"
}, via: [:get, :head]
end
并确保它在 mount RailsAdmin::Engine
行之前。
此代码应将对 'http://eritheia-labs.localhost:3000/admin/*path' 的任何请求重定向到 'http://localhost:3000/admin/*path'。
我找到了另一个解决方案,那就是......
在 routes.rb 文件中
authenticate :user, lambda { |u| u.role == "admin" } do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
end
将此代码放在 constraints DomainConstraint do 下
这将仅通过 localhost:3000/admin 访问 rails_admin,而不是通过示例访问 rails_admin。localhost:3000/admin
我已经在我的应用程序中安装了 gem rails_admin 现在我想重定向这个 url eritheia-labs.localhost:3000/admin/dashboard 到 localhost:3000/admin/dashboard
我想通过 localhost:3000/admin 而不是 eritheia-labs.localhost:3000/admin 访问 rails admin 或者如果输入这个 url 它将把我重定向到 localhost:3000/admin
您可以将以下内容添加到您的 config/routes.rb
constraints(host: "eritheia-labs.localhost") do
match '/admin/(*path)' => redirect { |params, req|
"http://localhost:3000#{req.fullpath}"
}, via: [:get, :head]
end
并确保它在 mount RailsAdmin::Engine
行之前。
此代码应将对 'http://eritheia-labs.localhost:3000/admin/*path' 的任何请求重定向到 'http://localhost:3000/admin/*path'。
我找到了另一个解决方案,那就是...... 在 routes.rb 文件中
authenticate :user, lambda { |u| u.role == "admin" } do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
end
将此代码放在 constraints DomainConstraint do 下 这将仅通过 localhost:3000/admin 访问 rails_admin,而不是通过示例访问 rails_admin。localhost:3000/admin