6

根据这个 Heroku 文档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.commyapp.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
4

3 回答 3

7

在我使用 Ghost 的情况下,将 Ghost 配置中的 HEROKU_URL 更新为“ http://www.myapp.com ”修复了此错误。我以为我已经设置好了,但是我将其更改为“ http://myapp.herokuapp.com ”,这样我就可以访问管理面板,该面板不接受来自 URL 而非 HEROKU_URL 的请求。

在请求到达服务器之前,我还遇到了 Chrome 自动重定向的单独问题,因此 Node 应用程序收到了对 myapp.herokuapp.com 的请求。我通过尝试使用另一个浏览器访问我的应用程序发现了这一点。我清除了浏览器 cookie 和缓存,并且 myapp.com 不再在 Chrome 中重定向。

于 2016-03-14T17:02:21.900 回答
1

对于较新版本的 Ghost (3.x),在使用https://github.com/SNathJr/ghost-on-heroku部署脚本时,我将 APP_PUBLIC_URL 更新为使用http://example.com.

我还在 Cloudflare 中设置了一个页面规则以http://*example.com/*与该设置一起使用:Always use HTTPS

于 2020-03-07T19:19:06.450 回答
0

以便日后跟进。我遇到过同样的问题。使用 Heroku + Cloudflare + 自定义域。Andrei Erdoss 回答有效。

APP_PUBLIC_URL 中的 https 会导致 301 重定向。


对于较新版本的 Ghost (3.x),在使用https://github.com/SNathJr/ghost-on-heroku部署脚本时,我更新了 APP_PUBLIC_URL 以使用http://example.com

此外,我在 Cloudflare 中设置了一个页面规则以使用 http://example.com/设置:始终使用 HTTPS


于 2020-06-13T04:31:07.140 回答