这篇博客将整理在配置博客以及项目 Pages 的自定义域名过程,遇到的问题以及解决方法。Github 的文档对于如何配置自定义域名有详细的介绍,这里不会全部翻译,只重点记录实践的过程,内容涉及为用户网站,公司网站,以及项目网站添加 Apex 域名(qiwihui.com),二级域名(www.qiwihui.com)以及开启 HTTPS。最后,所有指向 www.qiwihui.com 的请求将会被重定向至 https://qiwihui.com

<!--more-->

一些注意

Github 支持的自定义域名类型

支持的自定义域名类型 域名例子
www subdomain www.example.com
one apex domain & one www subdomain example.com & www.example.com
apex domain example.com
custom subdomain blog.example.com

GitHub Pages 站支持的域名

GitHub Pages 站类型 在 Github 上 Pages 的默认域名和主机地址 页面被如何重定向 自定义域名举例
User Pages 站 username.github.io 自动重定向到设置的自定义域名 user.example.com
Organization Pages 站 orgname.github.io 自动重定向到设置的自定义域名 org.example.com
用户拥有的 Project Pages 站 username.github.io/projectname 自动重定向到 User Pages 站自定义域名的子目录(user.example.com/projectname project.example.com
公司拥有的 Project Pages 站 orgname.github.io/projectname 自动重定向到 Organization Pages 站自定义域名的子目录(org.example.com/projectname project.example.com

以个人 Pages 项目为例子

开启 Github Pages 功能

在项目 Settings 中,找到 GitHub Pages 这一区域,选择 Source 为对应的要部署的分支,这里我选择 gh-pages branch

其中,选择 master branch 会视 /README.md 为 web 的 index.html,选择 master branch /docs folder 会视 /docs/README.md 为 web 的 index.html

在项目配置中自定义域名

Custom domain 中添加自己的域名并保存:

或者,在项目分支中添加 CNAME 文件,CNAME 文件的内容为

qiwihui.com

这里推荐第二种,尤其对于有设置 CI 的项目,因为 CI 上将第一种设置覆盖。
这一步是比较重要却又容易忽视的一步:

  • 如果添加到 GitHub Pages 中的是 qiwihui.com,那么 www.qiwihui.com 会被重定向到 qiwihui.com
  • 如果添加到 GitHub Pages 中的是 www.qiwihui.com,那么 qiwihui.com 会被重定向到 www.qiwihui.com

这里我选择重定向到 www.qiwihui.com,所以设置为 qiwihui.com

添加 DNS 记录

为了能设置Apex 域名,需要在 DNS 中配置 A 记录指向 github 的 IP:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

同时,设置 CNAME 记录将 www.qiwihui.com 指向 qiwihui.github.io,即 <你的 github 用户名>.github.io。对于公司来说,这个地址是 <公司名称>.github.io

确认 DNS 记录

以下是设置好之后的 DNS 记录情况:

$ dig +noall +answer qiwihui.com
qiwihui.com.            60      IN      A       185.199.111.153
qiwihui.com.            60      IN      A       185.199.110.153
qiwihui.com.            60      IN      A       185.199.108.153
qiwihui.com.            60      IN      A       185.199.109.153
$ dig www.qiwihui.com +nostats +nocomments +nocmd ; <<>> DiG 9.10.6 <<>> www.qiwihui.com +nostats +nocomments +nocmd
;; global options: +cmd
;www.qiwihui.com.               IN      A
www.qiwihui.com.        28      IN      CNAME   qiwihui.github.io.
qiwihui.github.io.      28      IN      A       185.199.110.153
qiwihui.github.io.      28      IN      A       185.199.108.153
qiwihui.github.io.      28      IN      A       185.199.111.153
qiwihui.github.io.      28      IN      A       185.199.109.153

SSL(HTTPS)配置,强烈推荐开启

勾选 Enforce HTTPS

Github 会自动保持 HTTPS 证书的有效。

项目 Pages

当给项目设置 Pages 时,一般都已经有一个个人或者公司的 Pages 了,如果没有,就可以按以上的过程添加。如果已经设置了,则只需要很简单的两步即可:

以下以个人项目 [qiwihui/fullstackpython.com](https://github.com/qiwihui/fullstackpython.com),设置地址为 fullstackpython.qiwihui.com

  1. 在项目中开启 Github Pages,并添加 CNAME 文件指向 fullstackpython.qiwihui.com

  1. 在 DNS 记录中添加 CNAME 记录将 fullstackpython.qiwihui.com 指向 qiwihui.github.io,即 <你的 github 用户名>.github.io。对于公司来说,这个地址是 <公司名称>.github.io

一段时间后即可。

参考

  • Using a custom domain with GitHub Pages
  • Custom domain redirects for GitHub Pages sites
  • Custom domain for GitHub project pages 的回答
  • Custom subdomains in GitHub project pages

GitHub Pages 自定义域名实践整理相关推荐

  1. GitHub Pages自定义域名如何支持https

    就在前不久,GitHub Pages开放了自定义域名支持HTTPS.这意味着广大用GitHub Pages搭建个人博客的同学们有福了,不用再自己买证书或借用第三方服务,就能开启网址左边的小绿锁啦,非常 ...

  2. 【前端】Github Pages 与域名关联简明教程

    Github Pages 与域名关联简明教程 1. 向你的 Github Pages 仓库添加一个CNAME(一定要*大写*)文件 其中只能包含一个顶级域名,像这样: example.com 如果你是 ...

  3. github pages + Hexo + 域名绑定搭建个人博客增强版

    概述 前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进行优化和完善.基本搭建请访问:http: ...

  4. Github pages个人域名添加SSL

    欢迎访问我的个人博客: https://赵旗.top/ 前言 寒假的时候用Hexo+Github pages搭建了属于自己的博客,前不久才绑定了个人域名.作为一名有强迫症的程序猿,肯定还要给自己加一个 ...

  5. 用hexo+github pages+独立域名搭建个人博客

    摘要 用hexo建立博客这个教程,查阅了很多资料,自己倒腾了两三个小时弄好了. 现在简单记录下,以便不时之需.欢迎来我的博客 https://www.heson10.com 基本环境 Window10 ...

  6. Gandi下配置Github pages的自定义域名

    用自定义网址去替换username.github.io.,因为自己有这样的需求,但是在网上看到的大多都不适用,所以整理下正确的三步方法. 在Gandi购买的.me域名username.me,托管在Gi ...

  7. GitHub Pages 绑定域名

    域名选购 域名注册商有很多,国内的万网,国外的 GoDaddy 等等.区别在于国内域名注册后需要备案,因为政策因素也可能随时被停用,相对的,国外注册域名在交流和沟通方面不如国内方便,而因为没有国内的政 ...

  8. Hexo在Github中搭建博客系统(7)万网域名解析到Github Pages

    在万网上买域名是相对便宜的,如何直接将域名指向Github Pages呢? 一.购买域名 选域名 登录阿里云万网,根据你自己想好的域名去查询那些网站可以购买. 如果是个人网站,一般以姓名全拼进行注册, ...

  9. CSDN博客自定义域名以及解析自己的域名到CSDN

    文章目录 注册一个域名 申请github账号 设置GitHub Pages 购买域名及域名解析 添加CNAME 大功告成 使用CSDN发布博客文章,但是有一个小问题就是,如果我给别人推荐我的文章,又想 ...

最新文章

  1. 这 10 道 Spring Boot 常见面试题你需要了解下
  2. php如何判断用户是从指定页面跳转进来的
  3. sklearn-GridSearchCV调节超参数
  4. ubuntu如何安装linux驱动程序,Ubuntu下如何安装驱动程序和应用软件?
  5. 2020年Java程序员应该学习的10大技术
  6. 如何优雅的理解ECMAScript中的对象
  7. clion windows安装
  8. 关系数据库的基本概念和MySQL说明
  9. spring boot整合cxf发布和调用webservice
  10. 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!在eclipse.ini中为eclipse指定jdk启动...
  11. selenium:解决页面元素display:none的方法
  12. 2017c语言自学贴吧,【图片】17年1.9开启我的C语言学习之路—小白篇【c语言吧】_百度贴吧...
  13. 进程间通信-----管道
  14. python学习第六天运算符总结大全
  15. matlab可以实现OCR吗,OCR2 OCR功能matlab实现,基本上只能识别纯色背景的内容 Other systems 其他 238万源代码下载- www.pudn.com...
  16. McAfee软件下载与安装
  17. php 超出整形范围,频率超出范围怎么办
  18. SVN上文件出现左侧黄色箭头右侧绿色箭头的双向箭头
  19. 分布式事务_实施分布式锁概述
  20. 什么是UNIX时间戳? 时间戳有什么用?

热门文章

  1. 华兴证券:混合云原生架构下的 Kitex 实践
  2. 陀螺产业区块链第八季 | 华兴银行-区块链服务平台
  3. 复杂网络中重要节点挖掘方法综述
  4. 1024 java学习之路。
  5. 跟着尚硅谷学大数据(二)MapReduce
  6. C语言物流信息管理系统实践,[源码和文档分享]基于C语言的物流配送管理信息系统...
  7. HTML静态网页作业——电影介绍-你的名字 5页 无js 带音乐
  8. Vue 中 CSS scoped 的原理
  9. 使用Email Receive端口上传文件至EDI系统
  10. Git for Windows 国内镜像文件