根据this Heroku documentation,我们可以允许使用自定义域myapp.herokuapp.com
访问myapp.com
托管的Heroku应用。
我已将跟踪记录添加到我的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
域中,点击链接即可 - 除非点击指向首页的链接,否则我们会重定向到{{1地址。
如何设置以便访问者看不到herokuapp.com地址,除非使用该地址访问该地址?
heroku日志的输出--tail --app myapp:
myapp.herokuapp.com
该应用似乎从未收到来自www.myapp.com的请求,但仅收到myapp.herokuapp.com。
heroku域的输出-a 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"
答案 0 :(得分:7)
在我使用Ghost的情况下,将Ghost配置中的HEROKU_URL更新为' http://www.myapp.com'修复了这个错误。我以为我已经设置了这个,但我把它更改为' http://myapp.herokuapp.com'所以我可以访问管理员面板,该面板不接受来自网址的请求而不是HEROKU_URL。
我还自动向Chrome发出了一个单独的问题,在请求到达服务器之前,帮助无助地重定向,因此Node应用程序收到了myapp.herokuapp.com的请求。我通过尝试使用其他浏览器访问我的应用程序来发现这一点。我清除了浏览器cookie和缓存,并且不再在Chrome中重定向myapp.com。
答案 1 :(得分:1)
对于使用https://github.com/SNathJr/ghost-on-heroku
部署脚本时的较新版本的Ghost(3.x),我将APP_PUBLIC_URL更新为使用http://example.com
。
我还在Cloudflare中设置了一个页面规则,以将http://*example.com/*
用于设置Always use HTTPS
答案 2 :(得分:0)
稍后再跟进。我遇到过同样的问题。 使用Heroku + Cloudflare +自定义域。 Andrei Erdoss的答案有效。
APP_PUBLIC_URL中的https将导致301重定向。
对于使用https://github.com/SNathJr/ghost-on-heroku部署脚本时的较新版本的Ghost(3.x),我将APP_PUBLIC_URL更新为使用http://example.com。
我还在Cloudflare中设置了一个页面规则,以将http:// example.com/ 用于以下设置:始终使用HTTPS