GitHub 页面 https/www 重定向

Posted

技术标签:

【中文标题】GitHub 页面 https/www 重定向【英文标题】:GitHub Pages https/www Redirect 【发布时间】:2019-07-15 23:13:18 【问题描述】:

使用 GitHub 页面托管静态网站时,如何让 https://www.test.com 重定向到 https://test.com?

我最近通过在我的 DNS 提供商 (namecheap) 处设置 A 记录为我的静态站点启用了 TLS(由 GitHub/Lets Encrypt 提供)。我还在我的 GitHub 存储库设置中选择了“强制 HTTPS”选项,该选项处理从 http://test.com 到 https://test.com 的重定向请求。我通过我的 DNS 提供商配置了一个重定向,它将http://www.test.com 转发到https://test.com,但缺少的一块是将https://www.test.com 转发到https://test.com。

关于这个问题,GitHub 说,“如果您的域启用了 HTTPS 强制,GitHub Pages 的服务器将不会自动路由重定向。您必须使用您的域注册商配置 www 子域和根域重定向。”

...我的 DNS 提供商说:“无法在帐户中设置 URL 重定向,以便将 TCP 端口从 http://www.domain.tld(使用端口 80)转发到 https://www.domain.tld(通过端口 443) 。”

我似乎陷入了两个服务的无限循环,说另一个应该提供此功能。

【问题讨论】:

使用@ajzbc 的答案,但使用 certbot 重新获取您的证书,确保您同时拥有 test.com 和 www.test.com 作为域。 (-d test.com -d www.test.com 而不是-d test.com 感谢您的建议,@HewwoCraziness。如果我要这样做,我会每 90 天更新一次证书吗?到目前为止,GitHub 为我处理了这些问题。 看起来您可以在 GitHub 的设置下添加启用 HTTPS 的自定义域:ayesh.me/GitHub-HTTPS(如果这不起作用,是的,您可以退回到每 90 天手动更新和添加证书,或找到一种自动化的方法。) 【参考方案1】:

什么对我有用:

将您的自定义域更改为以www. 为前缀,如下所示:

保存设置并等待 www.example.com 解决并运行。

删除www.前缀并再次保存。

等待浏览器和 DNS 缓存失效。

所有组合都应导致https://example.com/,并且不应出现 SSL 错误。

【讨论】:

等一下。这是在欺骗 github certbot 为 www 和裸域生成证书吗?但是在有效期结束时,它很可能只会更新当前的裸域证书。 @SudarshanKadam 所以我的证书被更新了,而且 www 前缀仍然有效。 感谢@Paul 的确认。 我该死;这行得通。为了不让别人误入歧途,我会在证书更新后接受你的回答,这将继续有效。你是怎么想出来的?你有没有联系过 GitHub 或 LetsEncrypt 上的任何人,试图弄清楚这里到底发生了什么? 我可以确认我的证书是在上周的某个时间更新的。

以上是关于GitHub 页面 https/www 重定向的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 规则将图像文件的直接视图重定向到页面,图像作为查询字符串传递

Linux 第三天 重定负管道符环境变量

Struts2页面重定向

将任何子域重定向到主域上的页面

如何在不重定向原始 URL 的情况下获取短 URL 服务的信息或实际信息

servlet如何重定向