我的域名example.com
来自域名注册商BigRock,它还为我提供了 DNS 管理面板。
我的应用程序托管在Heroku的example.herokuapp.com
.
Heroku 的域设置:
bash-3.2$ heroku domains
=== MyApp Domain Names
*.example.com
example.herokuapp.com
example.com
www.example.com
在我的 DNS 管理面板中,我有 0 条 A 记录、1 条 Hotmail 的 MX 记录和 1 条 CNAME 记录www.example.com
。
我知道裸域和 Heroku 的 A 记录的问题。我已经完成了这些: 1. StackOverflow 问题 - 如何为指向 Heroku 应用程序的顶级域(无 www)设置 DNS?
2. Heroku DevCenter - 自定义域 - 设置根域
3. Heroku DevCenter - Apex 域
上述链接和许多其他链接指向 2 个解决方案:
- 通过 DNSimple/DNS 轻松使用 ALIAS 或 ANAME 记录
- 如果您的 DNS 提供商不支持这种记录类型,并且您无法切换到支持的记录类型,您将需要使用子域重定向将根域请求发送到 Heroku 上的应用程序。
因为,我在 BigRock DNS 管理控制台上找不到这样的记录。只有这些记录 - “A、AAAA、MX、CNAME、TXT、SRV 和 SOA”。
因此,我为我的域设置了“域转发”。但是,它只让我选择提供“您希望转发 www.example.com 和 example.com 请求的指定 URL ”。
现在,如果我这样做
bash-3.2$ host example.com
example.com has address 173.194.16.11
example.com mail is handled by 15 888379351a9a.pamx1.hotmail.com.
和
bash-3.2$ host www.example.com
www.example.com is an alias for example.herokuapp.com.
这确实解决了裸域问题。但是像其他子域xyz.example.com
仍然没有重定向到www.example.com
,因为没有提到将所有子域(即“*”)重定向到 BigRock DNS 提供商的“域转发”部分中的任何其他指定。
所以,我的问题是如何解决重定向子域的问题?
另一个与 SSL 相关的查询 -
在Heroku Devcenter - subdomain redirection中,它说 “但是,请注意,使用此方法,对根域的安全请求,例如https://example.com,将导致显示错误或警告给用户。”
有什么办法可以解决上述问题,还是我必须切换到 DNSimple 或 DNS Made Easy 才能使用他们提供的 ALIAS 或 ANAME 记录服务?
更新:
在进一步挖掘中,我发现了这个 SO ques - Rails Manually redirecting from Naked Domain,建议使用:
这是更好的方法吗?