Chr*_*fer 2 dns ruby-on-rails rack-rewrite
我已经浏览了整个互联网,但无法得到最终的解决方案,我希望100%正确设置DNS等,以便在Heroku.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'
}
Run Code Online (Sandbox Code Playgroud)
然而,这为我创造了一个永恒的循环.
那么,我现在的问题是:为了实现这种设置,Heroku和DNS设置的正确工作流程是什么?
对此进行故障排除非常困难,因为通过反复试验来尝试不同的DNS设置非常困难(很难知道它们是否已经通过).
这是重写规则,我认为它是在说"执行301重定向到' http://mydomain.com $&'(其中$&表示它将保留.com之后的所有内容)但仅限于请求不是'www.mydomain.com'".
因此,您将进入重定向循环,因为对您的服务器中没有www的任何请求(例如裸mydomain.com)将重定向回mydomain.com.
它可能需要重写为:
r301 %r{.*}, 'http://www.mydomain.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] == 'mydomain.com'}
Run Code Online (Sandbox Code Playgroud)
因此,您将重定向到域的www版本.
实际上这里有一个骗局
编辑: 这就是我要做的:
在这个阶段,DNS没有任何其他关系.他们唯一做的就是返回一个IP地址(A记录)或另一个域(CNAME).然后他们的工作就完成了.
下一个:
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |