【问题标题】:Why does the http domains redirect but not the https domain?为什么 http 域重定向而不是 https 域?
【发布时间】:2020-12-28 13:30:18
【问题描述】:

我有一个托管在 Heroku 上的 Ruby on Rails 应用程序,它为应用程序提供 SSL 证书。这就是域路由的设置方式。

http://example.com       -->   https://www.example.com
http://www.example.com   -->   Heroku DNS URL

在 Heroku DNS URL 中,RoR 应用程序设置为强制使用 SSL,因此它将所有传入的 http://www.example.com 切换为 https://www.example.com

https://www.example.com  -->   Shows RoR app as secure and offers the SSL cert from heroku.

截至目前,这三个域都可以工作,用户可以输入它们,它们将被重定向到安全站点。

http://example.com
http://www.example.com
https://www.example.com

但是,如果用户输入https://example.com,他们会收到一条错误消息,指出无法找到服务器。我不知道如何更改此设置,因为我的域注册商仅用于域,而不是托管,因此我无法设置 .htaccess.php 重定向。

谁能提供一些关于如何解决这个问题的见解,好吗?谢谢!

【问题讨论】:

    标签: ruby-on-rails heroku redirect https dns


    【解决方案1】:

    这个问题是 Heroku 特有的:https://help.heroku.com/NH44MODG/my-root-domain-isn-t-working-what-s-wrong

    但是,根据您的 DNS 提供商是谁,他们可能会选择为您设置重定向。对此有多种术语,包括别名或 ANAME。您不能在基域上使用 CNAME 记录,因为这可能会导致其他问题,并且违反 RFC。

    一些托管服务提供商允许您将基本域和 www 子域与站点相关联,这样您就不需要重定向,并且两者都可以正常工作。不过我不确定 Heroku 是否支持。

    【讨论】:

    • 不幸的是,我认为这不是问题所在。我的 DNS 提供商设置为将邮件域重定向到 https://www.example.com。但是,它仅适用于 http://example.comhttp://www.example.com。当https 添加到域即https://example.com 时,不会发生重定向。我对此感到困惑,因为它适用于http://example.com。感谢您的洞察力,@Benjamin
    • 上述链接中报告了相同的行为,这就是为什么我认为这是 Heroku 特定问题。从技术上讲,从 https 重定向到 https 应该没有问题。如果不查看特定设置并确切知道域被委派给谁,则很难进行故障排除。这是我将从哪里开始的基本概要。 1. 检查您域上的名称服务器,并确保它们与您期望的 DNS 提供商一起使用。 2. 检查基域上的 A 记录,并使用反向 DNS 查找查看谁在托管它。仔细检查这些东西很有帮助。
    • 然后,当您确定重定向发生在哪里时,您可以查看是否可以进行更改。如果重定向实际上发生在 DNS 提供商处,那么我们需要检查他们的文档以了解可以做什么。如果他们无能为力,那么您仍然应该有选择。您应该仍然能够将 A 记录更改为另一个主机并独立执行重定向。如今,许多网站不再专门使用 www 子域,现代浏览器倾向于在地址栏中隐藏 www 子域,因此您可能更愿意保持原样。
    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 2018-02-12
    • 1970-01-01
    • 2016-05-23
    • 2020-11-04
    • 1970-01-01
    • 2016-03-20
    • 2016-01-30
    相关资源
    最近更新 更多