当前位置:首页 > 行业动态 > 正文

如何为GitHub Pages配置自定义域名?

在GitHub仓库Settings中启用Pages功能并指定分支,于域名注册商处添加CNAME记录指向GitHub服务器IP或用户页面域名,同时在项目根目录创建CNAME文件绑定自定义域名,完成DNS解析后,可通过HTTPS自动生效访问。

前期准备

  1. 拥有GitHub仓库
    确保仓库已发布为GitHub Pages,进入仓库的Settings > Pages,选择分支(通常为maingh-pages)并保存,若配置成功,会显示默认的github.io访问链接。

  2. 注册域名
    通过阿里云、Namecheap、GoDaddy等平台购买域名,建议选择简洁易记的名称,避免使用特殊符号。


配置域名解析(DNS)

域名解析是将域名指向GitHub服务器的核心步骤,根据需求选择以下两种方式之一:

  • CNAME记录(推荐子域名)
    若绑定子域名(如blog.yourdomain.com):

    1. 在域名服务商后台添加一条CNAME记录:
      • 主机名:blog(或其他子域名前缀)
      • 记录类型:CNAME
      • 记录值:<username>.github.io(替换为你的GitHub用户名)
    2. 在GitHub仓库根目录创建CNAME为你的域名(如blog.yourdomain.com)。
  • A记录(适用根域名)
    若绑定根域名(如yourdomain.com):

    1. 添加以下A记录指向GitHub的IP地址(共4条):
      主机名:@  
      记录类型:A  
      记录值:185.199.108.153  
                185.199.109.153  
                185.199.110.153  
                185.199.111.153 
    2. 同时建议添加www子域名的CNAME记录,并创建对应的CNAME文件。

生效时间:DNS解析通常需要10分钟至48小时,可通过dig yourdomain.com命令检查状态。


启用HTTPS加密

GitHub Pages默认支持免费SSL证书:

  1. 在仓库的Settings > Pages中勾选Enforce HTTPS
  2. 若提示证书未就绪,等待10分钟后刷新页面重试。
  3. 若使用第三方域名服务商,确保其支持SSL(如Cloudflare可开启“灵活SSL”模式)。

注意事项

  • 避免多域名冲突
    一个仓库只能绑定一个域名,若需多个域名,可通过重定向实现,但可能影响SEO。
  • CNAME文件优先级
    如果同时存在CNAME文件和仓库设置中的域名配置,以CNAME为准。
  • HTTPS兼容性
    若网站加载混合内容(HTTP资源),浏览器可能拦截部分内容,检查资源链接是否为https://开头。
  • 缓存问题
    更改配置后,清理浏览器缓存或使用无痕模式测试访问。

常见问题

  1. 访问显示404错误

    • 检查仓库是否已开启GitHub Pages功能。
    • 确认CNAME文件拼写无误且位于根目录。
  2. HTTPS无法启用

    • 确认DNS解析生效,且未配置冲突的CAA记录。
    • 等待GitHub自动签发证书(最长24小时)。
  3. 域名被劫持或被墙

    • 使用nslookup检查解析结果是否指向GitHub IP。
    • 联系域名服务商排查异常。

优化建议

  • 统一域名版本
    通过301重定向将www和根域名统一,避免内容重复影响SEO。
  • 定期更新仓库内容
    活跃的仓库更容易被搜索引擎抓取,提升排名。
  • 添加元标签描述
    在HTML中补充<meta name="description">,提高搜索结果的点击率。

参考资料

  1. GitHub官方文档:https://docs.github.com/pages
  2. Let’s Encrypt SSL证书:https://letsencrypt.org
  3. Cloudflare DNS配置指南:https://developers.cloudflare.com/dns
0