为什么自定义域重定向到 herokuapp.com?

Why does a custom domain redirect to herokuapp.com?

根据 this Heroku documentation,我们可以允许使用自定义域 myapp.com.

访问托管在 myapp.herokuapp.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.commyapp.com 重定向到 https://myapp.herokuapp.com。但是,导航到 http://www.myapp.com/blog/post/1(任何地址不是主页)将保留在 www.myapp.com 域中,单击 link 是可以的——单击 link 到主页我们被重定向到 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 domains -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' fixed this error. I thought I had this set up, but I changed it to 'http://myapp.herokuapp.com”,这样我就可以访问管理面板,它不接受来自非 [=17] 的 URL 的请求=].

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

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

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

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

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


对于更新版本的 Ghost (3.x),同时使用 https://github.com/SNathJr/ghost-on-heroku deploy script, I updated the APP_PUBLIC_URL to use http://example.com

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