跳至主要内容

关于自定义域名和 GitHub Pages

GitHub Pages 支持使用自定义域名,或将站点 URL 的根目录从默认值(如 octocat.github.io)更改为您拥有的任何域名。

谁可以使用此功能?

GitHub Pages 可用于具有 GitHub Free 和 GitHub Free for organizations 的公共存储库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有存储库。有关更多信息,请参阅“GitHub 的套餐”。

GitHub Pages 现在使用 GitHub Actions 执行 Jekyll 构建。当使用分支作为构建源时,如果您想使用内置的 Jekyll 工作流,则必须在您的存储库中启用 GitHub Actions。或者,如果 GitHub Actions 不可用或已禁用,则将 .nojekyll 文件添加到源分支的根目录将绕过 Jekyll 构建过程并直接部署内容。有关启用 GitHub Actions 的更多信息,请参阅“管理存储库的 GitHub Actions 设置”。

支持的自定义域名

提示

我们建议在将自定义域名添加到存储库之前验证它,以提高安全性并避免接管攻击。有关更多信息,请参阅“验证 GitHub Pages 的自定义域名”。

GitHub Pages 支持两种类型的域名:子域名和顶级域名。有关不受支持的自定义域名的列表,请参阅“排查自定义域名和 GitHub Pages 问题”。

支持的自定义域名类型示例
www 子域名www.example.com
自定义子域名blog.example.com
顶级域名example.com

您可以为您的站点设置一个或两个顶级域名和 www 子域名配置。有关顶级域名的更多信息,请参阅“为您的 GitHub Pages 站点使用顶级域名”。

我们建议始终使用 www 子域名,即使您也使用顶级域名。当您使用顶级域名创建新站点时,我们会自动尝试保护 www 子域名以供在提供站点内容时使用,但您需要进行 DNS 更改才能使用 www 子域名。如果您配置了 www 子域名,我们会自动尝试保护关联的顶级域名。有关更多信息,请参阅“管理 GitHub Pages 站点的自定义域名”。

在多个存储库中使用自定义域名

如果您为用户或组织站点设置了自定义域名,则默认情况下,相同的自定义域名将用于同一帐户拥有的所有项目站点。有关站点类型的更多信息,请参阅“关于 GitHub Pages”。

例如,如果您的用户站点的自定义域名是 www.octocat.com,并且您有一个未配置自定义域名的项目站点,该站点从名为 octo-project 的存储库发布,则该存储库的 GitHub Pages 站点将可从 www.octocat.com/octo-project 访问。

您可以通过向单个存储库添加自定义域名来覆盖默认的自定义域名。

注意

私下发布的项目站点的 URL 不会受用户或组织站点自定义域名的影响。有关私下发布站点的更多信息,请参阅 GitHub Enterprise Cloud 文档中的“更改 GitHub Pages 站点的可见性”。

要删除默认的自定义域名,您必须从用户或组织站点中删除自定义域名。

为您的 GitHub Pages 站点使用子域名

子域名是 URL 中根域名之前的部分。您可以将子域名配置为 www 或作为站点的独立部分,例如 blog.example.com

子域名通过您的 DNS 提供商使用 CNAME 记录进行配置。有关更多信息,请参阅“管理 GitHub Pages 站点的自定义域名”。

www 子域名

www 子域名是最常用的子域名类型。例如,www.example.com 包含一个 www 子域名。

www 子域名是最稳定的自定义域名类型,因为 www 子域名不受 GitHub 服务器 IP 地址更改的影响。

自定义子域名

自定义子域名是不使用标准 www 变体的子域名类型。当您想要站点的两个独立部分时,主要使用自定义子域名。例如,您可以创建一个名为 blog.example.com 的站点,并独立于 www.example.com 自定义该部分。

为您的 GitHub Pages 站点使用顶级域名

顶级域名是不包含子域名的自定义域名,例如 example.com。顶级域名也称为基本域名、裸域名、根顶级域名或区域顶级域名。

顶级域名通过您的 DNS 提供商使用 AALIASANAME 记录进行配置。有关更多信息,请参阅“管理 GitHub Pages 站点的自定义域名”。

如果您使用的是根域名作为您的自定义域名,我们建议您也设置一个www子域名。如果您通过您的 DNS 提供商为每种域名类型配置了正确的记录,GitHub Pages 将自动在这些域名之间创建重定向。例如,如果您将www.example.com配置为站点的自定义域名,并且您已为根域名和www域名设置了 GitHub Pages DNS 记录,则example.com将重定向到www.example.com。请注意,自动重定向仅适用于www子域名。自动重定向不适用于任何其他子域名,例如blog。有关更多信息,请参阅“管理 GitHub Pages 站点的自定义域名”。

保护 GitHub Pages 站点的自定义域名

如果您的 GitHub Pages 站点已禁用但已设置了自定义域名,则它有被域名接管的风险。在您的站点禁用期间,如果您的 DNS 提供商已配置了自定义域名,则可能导致其他人托管您某个子域名上的站点。

验证您的自定义域名可防止其他 GitHub 用户将其存储库与您的域名一起使用。如果您的域名未经验证且您的 GitHub Pages 站点已禁用,则应立即更新或删除您在 DNS 提供商处的 DNS 记录。有关更多信息,请参阅“验证您的 GitHub Pages 自定义域名”和“管理 GitHub Pages 站点的自定义域名”。

您的站点可能会自动禁用,原因有很多。

  • 如果您从 GitHub Pro 降级到 GitHub Free,则您帐户中当前从私有存储库发布的任何 GitHub Pages 站点都将取消发布。有关更多信息,请参阅“降级您的帐户计划”。
  • 如果您将私有存储库传输到使用 GitHub Free 的个人帐户,则该存储库将失去对 GitHub Pages 功能的访问权限,并且当前发布的 GitHub Pages 站点将取消发布。有关更多信息,请参阅“传输存储库”。

进一步阅读