我使用 Namecheap 进行域注册和 DNS,并使用 Heroku 进行托管。我通过 Namecheap 购买了 SSL 证书,并使用 Heroku 进行了设置,并且几乎可以完美运行。
目前,我有一个 DNS CNAME 记录,主机“www”指向“[whatever].herokussl.com。”,并且一个“@”主机记录设置为 URL 重定向(301)到“http://www.[domain ].com”。
我的应用程序本身强制所有 HTTP 流量重定向到 HTTPS,因此“http://www.[domain].com”转到“https://www.[domain].com”。
我得到以下结果:
http://www.[domain].com - properly navigates to site as HTTPS
https://www.[domain].com - properly navigates to site as HTTPS
http://[domain].com - properly navigates to site as HTTPS
https://[domain].com - **does not** navigate to site, and instead the browser cannot find the page
我相信这与 URL 重定向在幕后的行为方式有关。我最初是作为直接指向“[whatever].herokussl.com.”的 CNAME 记录执行此操作的,但显然在区域顶点块 MX 记录上执行此操作...
我需要做什么才能获得所需的行为?我只是希望所有裸域或“www”域都指向我的“www”域。
更新:有关我的 DNS 设置的更多信息
HOST NAME IP ADDRESS/URL RECORD TYPE
--------- -------------- -----------
@ http://www.[domain].com URL Redirect (301)
www [whatever].herokussl.com. CNAME (Alias)
我的 SSL 证书不是通配符,只是 Comodo 的 EssentialSSL 证书。如果只有 www.[domain].com 有效(从裸域重定向),我很好,尽管当我对顶点和“www”都使用 CNAME 时,它只是作为带有 SSL 的裸域工作美好的。