【发布时间】:2012-05-01 08:13:01
【问题描述】:
我浏览了整个互联网,但无法找到一个最终解决方案来解决我期望的 100% 正确设置 DNS 等以在 Heroku.com 上获得以下结果:
- 使用 mydomain.com 在 myapp.herokuapp.com 上显示内容
- 将所有流量从http://mydomain.com 重定向到http://www.mydomain.com(包括子文件夹)
我可以从任何地方得到一些帮助,但没有任何结论可以解决从 DNS 到机架重写的整个问题,所以这就是我在这里询问的原因(我的注册商和 Heroku 的支持只能给我”他们的部分”)。
据我了解,需要做的是:
将 mydomain.com 和 www.mydomain.com 添加到 Heroku 的自定义域
在我的注册商 DNS 中将 CNAME 更改为 http://myapp.herokuapp.com。 问题:“www”和“*”会使用 CNAME 重定向到 myapp.herokuapp.com 吗?
添加“@”DNS 记录以处理裸域请求 (http://mydomain.com)。由于这不会通过 CNAME 完成,因此我使用的是 https://devcenter.heroku.com/articles/custom-domains 的 IP 号码,尽管根据文章,它们存在严重的正常运行时间问题。
-- 1-3 给我留下了一个网站,该网站将同时提供 http://mydomain.com 和 http://www.mydomain.com 的内容 http://myapp.herokuapp.com
c。现在,我想将所有内容从 http://mydomain.com 重定向到 http://www.mydomain.com,并且根据 Heroku 支持,这应该通过 rack-rewrite (https://github.com/jtrupiano/rack-rewrite) 来完成。使用那里的示例,代码应该是:
r301 %r{.*}, 'http://mydomain.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] != 'www.mydomain.com'
}
然而,这为我创造了一个永恒的循环。
所以,我现在的问题是: 为了实现此设置,Heroku 和 DNS 设置的正确工作流程是什么?
解决这个问题非常困难,因为通过反复试验尝试不同的 DNS 设置非常困难(很难知道它们是否已经通过)。
【问题讨论】:
标签: ruby-on-rails dns rack-rewrite