Ruby on rails 轨道&x2B;赫罗库+;Cloudflare—将www消除为子域
我有一个多租户Rails 4应用程序,它使用带有PostgreSQL架构的子域来“租户”应用程序。我在Heroku和Cloudflare中设置了子域通配符“*”,并加载了站点,但它一直“认为”www是一个有效的子域。因此,通常有效的链接(在开发中使用)在生产中不起作用,因为www.mysite.com/accounts/new等与asdf.mysite.com/accounts/new相同。有什么方法可以让我的应用程序几乎忽略www作为子域吗?我仍然希望mysite.com重新定向到www.mysite.com,但是当它是www.mysite.com时,几乎只是将子域设置为false 为了使事情更具体一些,在我的应用程序_控制器中,我有一些代码可以执行以下操作。注意这些评论。在开发模式中,重定向到根url(子域:false)是有效的,但在生产中,它只是无限地重定向,不会加载。要加载它,我只需呈现页面,但这样做不会将子域设置为falseRuby on rails 轨道&x2B;赫罗库+;Cloudflare—将www消除为子域,ruby-on-rails,heroku,cloudflare,Ruby On Rails,Heroku,Cloudflare,我有一个多租户Rails 4应用程序,它使用带有PostgreSQL架构的子域来“租户”应用程序。我在Heroku和Cloudflare中设置了子域通配符“*”,并加载了站点,但它一直“认为”www是一个有效的子域。因此,通常有效的链接(在开发中使用)在生产中不起作用,因为www.mysite.com/accounts/new等与asdf.mysite.com/accounts/new相同。有什么方法可以让我的应用程序几乎忽略www作为子域吗?我仍然希望mysite.com重新定向到www.my
def load_schema
Apartment::Tenant.switch!('public')
return unless request.subdomain.present?
if current_account
Apartment::Tenant.switch!(current_account.subdomain)
else
redirect_to root_url(subdomain: false) # Works locally, but infinite re-direct in production
#render 'welcome/index' # - Renders the page in production, but nothing else works.
end
end
基本上,在开发模式下,一切都按预期工作,但在生产中,似乎有一些DNS问题需要解决,但我似乎不知道该怎么办。有什么想法吗?我的建议是强制www.mysite.com重定向到mysite.com,您可能在那里拥有主站点
您可以使用将主机名指向重定向服务,或者在
routes.rb
文件中使用带有约束的特定路由来完成此操作。我必须删除CloudFlare中的a name记录,并将其替换为CNAME记录。我还添加了2个额外的CNAME记录:一个通配符,一个用于www.我目前在CloudFlare上设置了3个DNS记录:A-mydomain.com-指向[IP地址]CNAME-www-alias of myapp.herokuapp.com CNAME-*-alias of myapp.herokuapp.com我已经尝试删除了www,并且做了同样的事情(我认为它是由通配符拾取的?)关于设置它有什么想法吗?对吗?或者一个带有约束的routes.rb示例将非常棒。感谢您的回复!