根据 this Heroku documentation我们可以允许托管在 myapp.herokuapp.com
的 Heroku 应用程序使用自定义域访问 myapp.com
.
我已将以下记录添加到我的 GoDaddy DNS 区域文件中:
A (Host)
Host Points To TTL
--------------------------------------------------
@ 50.63.202.1 1/2 Hour
CName (Alias)
Host Points To TTL
--------------------------------------------------
email email.secureserver.net 1/2 Hour
ftp @ 1/2 Hour
www myapp.herokuapp.com 1/2 Hour
通常,A 记录指向服务器。在这种情况下,Heroku 不为其云应用程序提供 IP 地址,显然 CNAME 就足够了。
导航至
www.myapp.com
或 myapp.com
重定向到 https://myapp.herokuapp.com
.但是,导航到 http://www.myapp.com/blog/post/1
(任何地址不是主页)将留在 www.myapp.com
域,点击链接是可以的——除了点击主页链接时,我们被重定向到 myapp.herokuapp.com
地址。如何设置才能让访问者看不到 herokuapp.com 地址,除非使用该地址访问它?
heroku logs --tail --app myapp 的输出:
2016-03-11T01:13:49.756887+00:00 heroku[router]: at=info method=GET path="/" host=vast-hamlet-33090.herokuapp.com request_id=6177aa6c-dc5f-4de5-a1c6-1ff8b1194849 fwd="24.17.117.236" dyno=web.1 connect=1ms service=24ms status=304 bytes=181
2016-03-11T01:13:49.760014+00:00 app[web.1]: 24.17.117.236 - - [11/Mar/2016:01:13:49 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"
该应用程序似乎从未收到来自 www.myapp.com 的请求,而只收到来自 myapp.herokuapp.com 的请求。
heroku domain -a myapp 的输出:
=== myapp Heroku Domain
myapp.herokuapp.com
=== myapp Custom Domains
Domain Name DNS Target
------------------ -------------------
www.myapp.com myapp.herokuapp.com
myapp.com myapp.herokuapp.com
最佳答案
在我使用 Ghost 的情况下,将 Ghost 配置中的 HEROKU_URL 更新为“http://www.myapp.com” ' 修正了这个错误。我以为我有这个设置,但我把它改成了' http://myapp.herokuapp.com ' 这样我就可以访问管理面板,该面板不接受来自不是 HEROKU_URL 的 URL 的请求。
我也有一个单独的 Chrome 问题,在请求到达服务器之前自动重定向,有帮助-无帮助,所以 Node 应用程序收到了对 myapp.herokuapp.com 的请求。我通过尝试使用其他浏览器访问我的应用程序发现了这一点。我清除了浏览器 cookie 和缓存,myapp.com 不再在 Chrome 中重定向。
关于heroku - 为什么自定义域会重定向到 herokuapp.com?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883929/