【问题标题】:Rails Routes Constraints with www is working, domain without www not working带有 www 的 Rails Routes Constraints 有效,没有 www 的域无效
【发布时间】:2015-11-06 04:51:20
【问题描述】:

通过另一个 Rails-Engine 项目,我能够更好地处理约束。我试着把我以前的工作改成这个。

我有一个运行子域的应用程序,www/admin 受到限制,但客户可以使用的所有其他内容。我用的更简单:

constraint => "www"

由于上述方法不适用于没有wwwexample.com 的URL,我正在使用以下脚本:

我把文件放在app/constraints/frontend_router.rb

    class FrontRouter
        def self.matches?(request)
            request.subdomain.present? && request.subdomain != "www" && request.subdomain != ENV['DEPLOYED_DOMAIN']
        end
    end

在路由文件的顶部,添加所需的文件。 www 似乎可以工作,但example.com(没有www)却不行。

require 'frontend_router'

constraints(FrontRouter) do
    # Landing Page
    scope module: "website" do
        root 'page#index'
    end
end

【问题讨论】:

  • 实际上我刚刚发现这可能无法正常工作,我已经重置了服务器并扫描了没有显示任何限制的路由......我将继续努力并尝试解决这个问题。
  • 重新路由 www/non-www 应该在 DNS 中完成 - 您正在向 Rails 应用程序添加膨胀以尝试管理它。
  • 我没有第一手知识,但 DNS 使用 CNAME,从我一直在阅读的内容来看,在 DNS 级别上将 .example.com 路由到 www.example.com 是不可能的

标签: ruby-on-rails ruby ruby-on-rails-4 rails-engines


【解决方案1】:

我正在使用的插件正在路由所有内容。它可能会覆盖我正在尝试做的事情。但我发现这是我最好的个人选择:使用引擎上的欢迎和单独的仪表板视图。

 gem 'mtwarden', '~> 2.2'

如果其他人有更好的解决方案,我愿意尝试并测试。但这将完成我需要做的事情。

【讨论】:

    猜你喜欢
    • 2019-08-26
    • 2021-07-03
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 2015-09-24
    • 2013-03-31
    相关资源
    最近更新 更多