我正在使用Heroku,并为我的应用添加了几个自定义域名,即 myapp.com
和 www.myapp.com
.
我在GoDaddy的DNS有_333364_的三条A记录,指向三个单独的Heroku IP,以及指向 proxy.heroku.com
的'www'子域的CNAME .
我想要做的是将任何流量重定向到 www.myapp.com
到 myapp.com
. 我尝试将CNAME设置为'@',但仍然保留在同一个域中 . 有没有办法可以在DNS级别强制进行此重定向?
3 回答
CNAME不是重定向,只是您域名的规范名称 . 这意味着它的行为就像它指向的域(在你的情况下是myapp.com) . 您的浏览器获得与myapp.com相同的IP地址,并向其发送请求 .
重定向在HTTP级别或更高级别执行 . 你可以在你的应用程序中执行此操作,或者为此创建另一个简单的应用程序 .
这是一个直接在您的应用中进行重定向的简单示例:
或者你可以使用rails metal,它会做同样的事情,但要快得多:
您还可以使用正则表达式将所有请求与主机名前面的
www.
匹配 .这是node.js的解决方案
这也会将domain.herokuapp.com重定向到yourdomain.com,阻止搜索引擎索引重复内容 .
您也可以在任何Rack应用程序中轻松完成此操作,方法是安装
rack-canonical-host
gem并将其放入Rack配置文件中: