Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道&x2B;赫罗库+;Cloudflare—将www消除为子域_Ruby On Rails_Heroku_Cloudflare - Fatal编程技术网

Ruby on rails 轨道&x2B;赫罗库+;Cloudflare—将www消除为子域

Ruby 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

我有一个多租户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)是有效的,但在生产中,它只是无限地重定向,不会加载。要加载它,我只需呈现页面,但这样做不会将子域设置为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问题需要解决,但我似乎不知道该怎么办。有什么想法吗?

我的建议是强制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示例将非常棒。感谢您的回复!