Skip to main content

关于自定义域名和 GitHub 页面

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

谁可以使用此功能?

GitHub Pages 适用于具有 GitHub Free 和组织的 GitHub Free 的公共存储库,以及具有 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 可使用两种类型的域名:子域名和 apex 域名。 有关不支持的自定义域的列表,请参阅“自定义域和 GitHub Pages 疑难解答”。

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

可以为站点设置顶点和/或 www 子域配置。 有关 apex 域的详细信息,请参阅“对 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 网站使用 apex 域

顶点域是不包含子域的自定义域,如 example.com。 Apex 域也称为基础域、裸域、根 apex 域或区域 apex 域。

DNS 提供商为顶点域配置 AALIASANAME 记录。 有关详细信息,请参阅“管理 GitHub Pages 站点的自定义域”。

如果使用 apex 域作为自定义域名,建议还设置一个 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 站点将取消发布。 有关详细信息,请参阅“转让仓库”。

延伸阅读