Github Pages将非www(根域名)重定向到www子域名。

8

我用jekyll为Github Pages构建了一个网站。我已经设置好了一切,我的自定义域名www.domain.tld也可以正常工作。 但是当我在浏览器中输入domain.tld时,它会一直加载。现在我想将非www的URL重定向到www的URL,但由于在Github Pages上我没有可编辑的htaccess文件,所以我不知道该如何实现。

3个回答

8

有一种通用的方法可以实现这个功能。

例如,我的 GitHub 仓库是:wpfgeek.github.io

1. 在你的仓库中编辑 CNAME 文件

wpfgeek.github.io/CNAME

www.geekzl.com

2. 在仓库的设置中启用https

进入github仓库设置页面,在“Github pages”下找到Enforce HTTPS,然后勾选前面的复选框。

geekcl.com - Enable the https

3. 在DNS提供商中更新DNS设置

打开DNS提供商,在其中添加以下两个记录:

---------------------------------------------
| Record | Record Type | Value              |
| ------ | ----------- | ------------------ |
| @      | A           | 185.199.108.153    |
| ------ | ----------- | ------------------ |
| www    | CNAME       | wpfgeek.github.io. |

那么网站https://geekzl.comhttp://geekzl.com将成功重定向到https://www.geekzl.com

您可以用前缀www替换www.geekzl.com为您的域名,然后将wpfgeek.github.io的CNAME记录替换为您的repo名称。

希望对您有所帮助,愉快使用!


我注意到你的CNAME已更改为web.geekzl.com,其他配置步骤是否也更改了? - Julio
@Julio 这个答案中的方法仍然有效。目前这个网站因为我的个人需求而改变,现在它没有部署在github.io上了。 - Bravo Yeung
相同的方法适用于子域名,但您应该将两者定义为CNAME记录类型,指向USERNAME.github.io。 - victor.ja
@BravoYeung 如果我想访问 example.com,并将 www.example.com 重定向到 example.com,该怎么办? - dryleaf
1
对于任何遇到根域名缺少SSL证书的人:我按照上面的指示为https://www.flyde.dev进行了操作,但是由于“flyde.dev”没有证书,导致出现了SSL错误。为了解决这个问题,我在Github端将域名更改为“flyde.dev”,这触发了SSL证书的创建,然后再切换回“www.”,现在一切都正常工作了! - GabrielG

4

这取决于您购买自定义域名的域名托管服务(Google Domains,Domain.com等)。您需要查看设置并尝试找到类似“子域名转发”或“域名转发”的内容。措辞因每个服务而异。

该服务应该有一些设置,允许您使用类似于“临时重定向(302)”,“路径转发”,“启用SSL”等设置将 nikurasu.xyz 转发到 www.nikurasu.xyz 。 这是来自我的托管服务Google Domains的示例。

归根结底,“www”转发完全由域名托管服务完成,与您的GitHub仓库或GitHub设置无关。


1

针对@DC.Azndj的回答,仅适用于Google Domains。

该选项在网站菜单中,而不是DNS中。如果您熟悉DNS,则可能会感到有些困惑。

使用“添加转发地址”选项。

默认情况下,Google会添加两个名称example.comwww.example.com。如果您在同一域内进行转发,从example.comwww.example.com,则需要编辑并删除www条目。

在高级选项中,您可以启用SSL和非SSL端口的转发。

还有其他一些有用的选项,例如路径转发等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接