这里有一些并发症。
第一个复杂因素是您要重定向使用 HTTPs 的主机名。实际上,通常您可以使用 DNSimple URL 记录,但它不适用于 https,因为您需要在 DNSimple 服务器上安装 SSL 证书(HTTP 重定向标头在 HTTPS 协商之后发送)。
一种选择是在服务器级别重定向,但由于您的应用程序托管在 Heroku 上,因此您无法控制服务器配置。
因此,在您的情况下,唯一的选择是将各个域指向同一个 Heroku 应用程序,将域作为自定义域添加到您的 Heroku 应用程序并在内部处理重定向。这意味着您的应用程序应检查请求是否来自备用域之一,如果是这种情况,它会重定向到规范域。
有几种方法可以在 Rails 应用程序中检查它。最有效的可能是使用自定义中间件或 Rails 路由器文件,以便尽快处理请求,并且不会在应用程序中构建整个请求堆栈,例如使用before_action
.
在 DNSimple 方面,您只需创建指向应用程序的相同 Heroku SSL 端点的 ALIAS 记录(如果您要解析的主机名是顶级域)或 CNAME 记录(如果主机名是子域) .
然而,最后一个问题是 Heroku 不允许同一个应用使用多个证书。如果您要重定向到规范的域属于相同的名称(例如是子域),您可以购买通配符证书。否则,如果您想在重定向中覆盖多个不同的域,您将需要一个多域 SSL 证书。