如何将子域重定向到 Rails 中具有相同 url 的域

How to redirect Subdomain to domain with same url in Rails

我已经在我的应用程序中安装了 gem rails_admin 现在我想重定向这个 url eritheia-labs.localhost:3000/admin/dashboardlocalhost: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