【发布时间】:2015-11-06 04:51:20
【问题描述】:
通过另一个 Rails-Engine 项目,我能够更好地处理约束。我试着把我以前的工作改成这个。
我有一个运行子域的应用程序,www/admin 受到限制,但客户可以使用的所有其他内容。我用的更简单:
constraint => "www"
由于上述方法不适用于没有www 和example.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