gpt4 book ai didi

ruby-on-rails - Rails + Heroku + Cloudflare - 消除 www 作为子域

转载 作者:行者123 更新时间:2023-12-04 15:56:29 24 4
gpt4 key购买 nike

我有一个 Multi-Tenancy Rails 4 应用程序,它使用带有 PostgreSQL 模式的子域来“租户”应用程序。我在 Heroku 和 Cloudflare 中设置了子域通配符“*”并且站点加载,但它一直“认为”www 是一个有效的子域。因此,通常有效的链接(正在开发中)在生产中不起作用,因为 www.mysite.com/accounts/new 等与 asdf.mysite.com/accounts/new 相同。有什么办法可以让我的应用程序几乎忽略 www 作为子域?我仍然希望 mysite.com 重新定向到 www.mysite.com,但是当它是 www 时,几乎只是将子域设置为 false?

为了让事情更具体一点,在我的 application_controller 中,我有一些代码可以执行以下操作。注意评论。在开发模式下,redirect_to root_url(subdomain: false) 有效,但在生产中,它只是无限重定向并且不会加载。为了让它加载,我只是渲染页面,但这样做从不将子域设置为 false。

  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 问题需要解决,但我似乎不知道该怎么做。有什么想法吗?

最佳答案

我不得不删除 CloudFlare 中的 A 名称记录并将其替换为 CNAME 记录。我还添加了 2 个额外的 CNAME 记录:一个通配符和一个用于 www。

关于ruby-on-rails - Rails + Heroku + Cloudflare - 消除 www 作为子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30736716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com