我已经查看了整个互联网,但无法获得一个最终解决方案来解决我期望的 DNS 等 100% 正确设置以在 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 。问题:会使用 CNAME 重定向到 myapp.herokuapp.com 的“www”和“*”吗?
添加“@”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 /机架重写)。使用那里的示例,代码应该是:
r301 %r{.*}, 'http://mydomain.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] != 'www.mydomain.com'
}
然而,这为我创造了一个永恒的循环。
所以,我现在的问题是:为了实现这个设置,Heroku 和 DNS 设置的正确工作流程是什么?
解决这个问题非常困难,因为通过反复试验尝试不同的 DNS 设置非常困难(很难知道它们是否已经通过)。