GitHub項目頁面的自定義域

我在http://github.com的一個回購中有一個gh-pages分支。 若是我訪問http://myuser.github.com/myrepo,GitHub項目頁面能夠正常工做 git

我想設置一個自定義域(myexample.com)來提供這個項目頁面。 我想這兩個 myexample.comwww.myexample.com就能夠提供這些項目的頁面。 github

GitHub頁面幫助說您在DNS中建立A記錄和CNAME記錄。 A記錄是有道理的,但我不知道在個人DNS中要作什麼CNAME記錄。 web

gh-pages文檔說要爲'charlie.github.com'建立一個CNAME記錄,這是一個用戶頁面存儲庫。 我沒有用戶頁面存儲庫 - 我只有一個項目存儲庫和一個gh-pages分支,我想用於myexample.comwww.myexample.comdom

我是否須要建立用戶頁面存儲庫,以便我能夠將個人項目頁面用於www.myexample.com和myexample.com? 網站

我會嘗試一下,但我想確保它可以正常工做,由於我已經有www.myexample.com直播而且不想犯錯誤。 google

我經過電子郵件發送了GitHub支持,他們的回覆是 spa

據我所知,你不能同時指向相同的gh頁面。 code

我發現很難相信他們只支持項目頁面的A記錄。 blog

有沒有人成功地作過這件事? github-pages


#1樓

截至2013年8月29日, Github的文檔聲稱:

警告:項目頁面子路徑(如http://username.github.io/projectname)不會重定向到項目的自定義域。


#2樓

概觀

對於項目頁面而言文檔有點使人困惑,而不是用戶頁面 。 感受你應該作更多,但實際上這個過程很是簡單。

它涉及:

  1. 爲裸(無www)域設置2個靜態A記錄。
  2. 爲www建立一個CNAME記錄,該記錄將指向GitHub URL。 這將爲您處理www重定向。
  3. 在gh-pages分支上的項目根目錄中建立一個名爲CNAME(大寫)的文件。 這將告訴Github要響應的URL。
  4. 等待一切傳播。

你會獲得什麼

您的內容將經過http://nicholasjohnson.com表格的網址提供。

訪問http://www.nicholasjohnson.com將返回301重定向到裸域。

重定向將遵循該路徑,所以http://www.nicholasjohnson.com/angular的流量將重定向到http://nicholasjohnson.com/angular

每一個存儲庫能夠有一個項目頁面,所以若是您的存儲庫已打開,您能夠擁有任意數量的存儲庫。

這是過程:

1.建立A記錄

對於A記錄,將@指向如下ip地址:

@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153

這些是您的內容將從中提供的靜態Github IP地址。

2.建立CNAME記錄

對於CNAME記錄,請將www指向yourusername.github.io。 請注意尾隨句號。 另請注意, 這是用戶名,而不是項目名稱 。 您還不須要指定項目名稱。 Github將使用CNAME 文件來肯定從哪一個項目提供內容。

例如

www: forwardadvance.github.io.

CNAME的目的是將全部www子域流量重定向到GitHub頁面,該頁面將重定向到裸域。

這是我用於本身網站http://nicholasjohnson.com的配置的屏幕截圖:

Github靜態頁面所需的A和CNAME記錄

3.建立CNAME文件

將名爲CNAME的文件添加到gh-pages分支中的項目根目錄。 這應該包含您要提供的域。 確保你提交併推送。

例如

nicholasjohnson.com

此文件告訴GitHub使用此repo來處理此域的流量。

等等

如今等待5分鐘,您的項目頁面如今應該是實時的。


#3樓

我剛剛發現,若是您使用PairNIC ,我只須要啓用「自定義DNS」下的「Web轉發」設置並提供username.github.io/project地址便可。自動爲您設置apex和子域記錄。 它彷佛徹底符合接受的答案中的建議。 可是,它不會讓您經過手動添加記錄來完成相同的操做。 很奇怪。 不管如何,我花了一段時間才弄明白,因此我想我會分享給別人解決的麻煩。


#4樓

我想與你們分享個人步驟是經過提供哪些有點不一樣rynopsuperluminary

  • 對於A記錄徹底相同可是
  • 而不是爲www建立CNAME我寧願將其重定向到個人空白域( non-www

此配置指的是首選域的指導。 wwwnon www的域設置或反之亦然能夠在每一個域提供商上不一樣。 因爲個人域名在GoDaddy下,所以在域名設置下我使用子域轉發 (301)進行設置。

做爲將域指向Github存儲庫的結果,它將爲mastergh-pages分支提供全部URL,相似於我在下面列出的那些到達首選域:

經過在master分支上建立CNAME文件(在個人用戶存儲庫中檢查它)。

http://hyipworld.github.io/
http://www.hyip.world/
http://hyip.world/

GH-頁

經過在gh-pages分支上建立相同的CNAME文件(在個人項目存儲庫中檢查它)。

http://hyipworld.github.io/maps/
http://www.hyip.world/maps/
http://hyip.world/maps/

做爲上述CNAME文件的補充,您可能須要經過在頁面repo的根目錄中建立名爲.nojekyll的文件來徹底繞過 GitHub頁面上的Jekyll處理


#5樓

若是您想知道如何讓您的域名顯示爲www.mydomain.com而不是將www請求重定向到mydomain.com ,請嘗試如下操做:

gh-pages分支上的CNAME文件將有一行:

www.mydomain.com (而不是mydomain.com

不管您對重定向的偏好(換句話說,不管您在gs-pages分支上的CNAME文件中是什麼), 使用您的DNS提供程序 ,都應該像這樣設置:

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io
相關文章
相關標籤/搜索