GitHub Pages 自定義域名實踐整理

這篇博客將整理在配置博客以及項目 Pages 的自定義域名過程,遇到的問題以及解決方法。Github 的文檔對于如何配置自定義域名有詳細的介紹,這里不會全部翻譯,只重點記錄實踐的過程,內容涉及為用戶網(wǎng)站,公司網(wǎng)站,以及項目網(wǎng)站添加 Apex 域名(qiwihui.com),二級域名(www.qiwihui.com)以及開啟 HTTPS。最后,所有指向 www.qiwihui.com 的請求將會被重定向至 https://qiwihui.com。

一些注意

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 這一區(qū)域,選擇 Source 為對應的要部署的分支,這里我選擇 gh-pages branch

gh-pages

其中,選擇 master branch 會視 /README.md 為 web 的 index.html,選擇 master branch /docs folder 會視 /docs/README.md 為 web 的 index.html

在項目配置中自定義域名

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

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
a-record

同時,設置 CNAME 記錄將 www.qiwihui.com 指向 qiwihui.github.io,即 <你的 github 用戶名>.github.io。對于公司來說,這個地址是 <公司名稱>.github.io。

www-record

確認 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

enfore_https

Github 會自動保持 HTTPS 證書的有效。

項目 Pages

當給項目設置 Pages 時,一般都已經(jīng)有一個個人或者公司的 Pages 了,如果沒有,就可以按以上的過程添加。如果已經(jīng)設置了,則只需要很簡單的兩步即可:

以下以個人項目 [qiwihui/fullstackpython.com](https://github.com/qiwihui/fullstackpython.com),設置地址為 fullstackpython.qiwihui.com

  1. 在項目中開啟 Github Pages,并添加 CNAME 文件指向 fullstackpython.qiwihui.com
fullstackpython
  1. 在 DNS 記錄中添加 CNAME 記錄將 fullstackpython.qiwihui.com 指向 qiwihui.github.io,即 <你的 github 用戶名>.github.io。對于公司來說,這個地址是 <公司名稱>.github.io。
fullstackpython-record

一段時間后即可。

參考

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 摘要:這是一篇很詳盡的獨立博客搭建教程,里面介紹了域名注冊、DNS設置、github和Hexo設置等過程,這是我寫...
    lishan3333閱讀 8,566評論 20 94
  • 一:github上new repo 項目名稱必須是“username.github.io” 二:clone到本地 ...
    VI8080閱讀 2,581評論 1 19
  • 我是個跑步愛好者,每天都跑上5~8公里,已經(jīng)堅持三年了,據(jù)我了解的知識和我的體會,很多跑步愛好者,在跑步后,由于不...
    山東田夫閱讀 1,187評論 5 30
  • 一、什么是架構設計? 個人以為架構設計是一種編碼建模,是一種對規(guī)范,是為了更好適應當代快速迭代版本而引出的軟件...
    做個快樂的代碼哥閱讀 440評論 0 1
  • 《行香子》 宋·李清照 天與秋光,轉轉情傷, 探金英知近重陽。 薄衣初試,綠蟻新嘗, 漸一番風,一番雨,一番涼。 ...
    怯怯灼木閱讀 541評論 0 0

友情鏈接更多精彩內容