跳至主要内容

排查自定义域名和 GitHub Pages 的问题

您可以检查常见错误,以解决自定义域名或 HTTPS 在您 GitHub Pages 站点上的问题。

谁可以使用此功能?

GitHub Pages 在公共仓库中可使用 GitHub Free 和组织的 GitHub Free;在公共和私有仓库中可使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server。欲了解更多信息,请参阅 GitHub 的套餐

CNAME 错误

如果您通过自定义 GitHub Actions 工作流进行发布,任何 CNAME 文件都会被忽略,且不需要。

如果您从分支进行发布,自定义域名存放在发布源根目录的 CNAME 文件中。您可以通过仓库设置或手动方式添加或更新此文件。有关更多信息,请参阅 管理 GitHub Pages 站点的自定义域名

为了使站点在正确的域名下渲染,请确保 CNAME 文件仍然存在于仓库中。例如,许多静态站点生成器会强制推送到您的仓库,这可能会覆盖您在配置自定义域名时添加的 CNAME 文件。如果您在本地构建站点并将生成的文件推送到 GitHub,请先拉取包含 CNAME 文件的提交到本地仓库,这样该文件才能包含在构建中。

然后,确保 CNAME 文件的格式正确。

  • CNAME 文件名必须全为大写。
  • CNAME 文件只能包含一个域名。若要将多个域名指向您的站点,必须通过 DNS 提供商设置重定向。
  • CNAME 文件只能包含域名本身。例如,www.example.comblog.example.comexample.com
  • 域名必须在所有 GitHub Pages 站点中唯一。例如,如果其他仓库的 CNAME 文件包含 example.com,则您不能在自己的仓库的 CNAME 文件中使用 example.com

DNS 配置错误

如果您在将站点的默认域名指向自定义域名时遇到困难,请联系您的 DNS 提供商。

您也可以使用以下方法之一来测试自定义域名的 DNS 记录是否配置正确

不受支持的自定义域名

如果您的自定义域名不受支持,您可能需要更改为受支持的域名。您也可以联系 DNS 提供商,了解他们是否提供域名转发服务。

确保您的站点不

  • 使用多个顶级域名。例如,同时使用 example.comanotherexample.com

  • 使用多个 www 子域名。例如,同时使用 www.example.comwww.anotherexample.com

  • 同时使用顶级域名和自定义子域名。例如,同时使用 example.comdocs.example.com

    唯一的例外是 www 子域名。如果配置正确,www 子域名会自动重定向到顶级域名。有关更多信息,请参阅 管理 GitHub Pages 站点的自定义域名

警告

强烈建议您不要使用通配符 DNS 记录,例如 *.example.com。这些记录会导致您立即面临域名被接管的风险,即使您已经验证了域名。例如,验证了 example.com 可以防止他人使用 a.example.com,但仍可能被他人接管 b.a.example.com(该子域受通配符记录覆盖)。

关于受支持的自定义域名列表,请参阅 关于自定义域名和 GitHub Pages

HTTPS 错误

使用正确配置了 CNAMEALIASANAMEA DNS 记录的自定义域名的 GitHub Pages 站点,可通过 HTTPS 访问。有关更多信息,请参阅 使用 HTTPS 保护您的 GitHub Pages 站点

在您配置自定义域名后,站点可通过 HTTPS 访问可能需要最长约一小时的时间。更新已有的 DNS 设置后,您可能需要将自定义域名从站点仓库中移除并重新添加,以触发 HTTPS 启用流程。有关更多信息,请参阅 管理 GitHub Pages 站点的自定义域名

如果您使用证书授权(CAA)记录,必须至少存在一条值为 letsencrypt.org 的 CAA 记录,站点才能通过 HTTPS 访问。有关更多信息,请参阅 Let’s Encrypt 文档中的 证书授权(CAA)

Linux 上的 URL 格式

如果站点的 URL 包含以连字符开头或结尾、或包含连续连字符的用户名或组织名,使用 Linux 浏览的用户在访问站点时会收到服务器错误。解决办法是更改您的 GitHub 用户名,去除非字母数字字符。有关更多信息,请参阅 更改用户名

浏览器缓存

如果您最近更改或移除了自定义域名,但在浏览器中仍无法访问新的 URL,可能需要清除浏览器缓存才能访问新 URL。有关清除缓存的更多信息,请参阅相应浏览器的文档。

域名已被占用

如果您尝试使用的自定义域名显示已被占用,您可以先对该域名进行验证,以将其设为可供自己使用。有关更多信息,请参阅 验证 GitHub Pages 的自定义域名

© . This site is unofficial and not affiliated with GitHub, Inc.