【发布时间】:2013-08-21 01:34:00
【问题描述】:
我的域名 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 条 www.example.com 的 CNAME 记录。
我知道裸域和 Heroku 的 A 记录的问题。
我经历了这些:
1.StackOverflow ques - How to setup DNS for an apex domain (no www) pointing to a Heroku app?
2.Heroku DevCenter - Custom domains - set up root domain
3.Heroku DevCenter - Apex Domains
以上链接和许多其他链接指向 2 个解决方案:
- 通过 DNSimple/DNS Made Easy 使用 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 问题 - Rails Manually redirecting from Naked Domain,它建议使用:
这是更好的方法吗?
【问题讨论】:
标签: ruby-on-rails heroku dns cname wildcard-subdomain