GitHubプロジェクトページのカスタムドメイン


434

私が持っているgh-pages私の1に支店をhttp://github.comレポ。http://myuser.github.com/myrepoにアクセスすると、GitHubプロジェクトページは正常に機能します

このプロジェクトページを提供するカスタムドメイン(myexample.com)をセットアップしたい。私は両方 myexample.comwww.myexample.comこれらのプロジェクトページを提供したいと思います。

GitHubページでは、DNSでAレコードとCNAMEレコードを作成するように指示されています。Aレコードは理にかなっていますが、DNSで作成するCNAMEレコードがわかりません。

gh-pagesドキュメントは作るために言うCNAMEユーザページリポジトリである「charlie.github.com」のレコードを。私は、ユーザーのページリポジトリを持っていない-私は、プロジェクトのリポジトリと持っているgh-pages私が使用したいというブランチmyexample.comとをwww.myexample.com

www.myexample.comとmyexample.comのプロジェクトページを使用できるように、ユーザーページリポジトリを作成する必要がありますか?

私はそれを試してみるだけですが、www.myexample.comをすでにライブで使用していて、間違いを犯したくないので、これが機能することを確認したいと思います。

GitHubサポートにメールを送ったところ、その返答は

私が知る限り、両方を同じghページにポイントすることはできません。

彼らがプロジェクトページのAレコードのみをサポートするとは信じられません。

誰かが以前にこれを成功させたことがありますか?


10
私が設定したlacewing-project.orgを 207.97.227.245を指し示すだけでAレコード(なしCNAMEレコード)で、それは罰金に動作します。また、ドメイン名を含むgh-pagesブランチのルートにCNAMEというファイルを配置しました。
ジェームズマクラフリン2012年

私の場合、CNAMEファイルをgh-pagesブランチに配置するだけでうまくいきました。ありがとうございます。
jarandaf

回答:


521

2019年1月23日更新:

私の最後の答え以来、物事はかなり良くなりました(良い方のために)。この更新された回答は、構成方法を示します。

  1. ルートアペックス(example.com)
  2. サブドメイン(www.example.com)
  3. HTTPS(オプションですが強くお勧めします)

最終的に、へのすべてのリクエストexample.comhttps://www.example.com(またはHTTPSを使用しない場合はhttp://)にリダイレクトされます。私は常にwww最終的な着陸として使用します。なぜ(12)、別の議論のためのものです。

この答えは長いですが、複雑ではありません。このトピックに関するGitHubドキュメントは明確または直線的ではないため、私は明確にするために冗長でした。

ステップ1:GitHub設定でGitHubページを有効にする

  1. リポジトリからタブをクリックします
  2. GitHub Pagesセクションまでスクロールします。次の2つのオプションがあります。
  3. 選択master branchする/README.mdと、ウェブとして扱われますindex.html。選択master branch /docs folderする/docs/README.mdと、ウェブとして扱われますindex.html
  4. テーマを選択してください。
  5. GitHubがサイトを公開している間、少し待ちます。横のリンクをクリックして、機能することを確認しますYour site is ready to be published at

ステップ2:GitHub設定でカスタムドメインを指定する

ここにカスタムドメイン名を入力して、次のキーを押しますsave

これは微妙ですが、重要なステップです。

  • あなたはGitHubのページをサイトに追加カスタムドメインがある場合はexample.com、その後www.example.comにリダイレクトされますexample.com
  • GitHubページサイトに追加したカスタムドメインがの場合はwww.example.comexample.comにリダイレクトされwww.example.comます。

前述のように、常に上陸するwwwことをお勧めしwww.example.comます。

ステップ3:DNSエントリを作成する

DNSプロバイダーのWebコンソールで、4つのAレコードと1 つのレコードを作成しますCNAME

  1. A@(別名root apex)のレコード:

DNSプロバイダーによっては、指定するものと@、AWS Route 53などのように、サブドメインを空白のままにして指定するものがあります@。どちらの場合も、作成するレコードは次のとおりAです。

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
  1. CNAMEwww.example.comを指すレコードを作成しますYOUR-GITHUB-USERNAME.github.io

これは最も混乱する部分です。

GitHubリポジトリ名ではYOUR-GITHUB-USERNAME ないことに注意してください!の値はこのチャートYOUR-GITHUB-USERNAMEによって決定されます。

以下のためのユーザーページのサイト(ほとんどの場合、あなたが何であるか)、CNAMEエントリは次のようになりますusername.github.io、例:

以下のために組織のページのサイト、CNAMEエントリは次のようになりますorgname.github.io、例:

手順5:DNSエントリを確認する

  1. A実行して記録を確認しますdig +noall +answer example.com185.x.x.x入力した4つのIPアドレスが返されます。

  2. CNAME実行して記録を確認しますdig www.example.com +nostats +nocomments +nocmd。それは返す必要がありますCNAME YOUR-GITHUB-USERNAME.github.io

これらのDNSエントリが解決/伝播するのに1時間ほどかかる場合があります。彼らがそうしたら、あなたのブラウザを開いて、http://example.comそれはにリダイレクトする必要がありますhttp://www.example.com

ステップ6:SSL(HTTPS)構成。オプションですが、強くお勧めします

カスタムドメインが機能したら、リポジトリ設定に戻ります。既に設定ページを開いている場合は、ページをハードリフレッシュします。

Enforce HTTPSチェックボックスの下に、まだ処理中であることを示すメッセージがある場合は、待つ必要があります。またsaveCustom domainセクションのボタンを押してEnforce HTTPS処理を開始する必要がある場合もあります。

処理が完了すると、次のようになります。

ここに画像の説明を入力してください

Enforce HTTPSチェックボックスをクリックして、ブラウザでにアクセスしhttps://example.comます。リダイレクトして開く必要がありますhttps://www.example.com

それでおしまい!

GitHubは自動的にHTTPS証明書を最新の状態に保ち、HTTPS経由でwwwリダイレクトする頂点を処理する必要があります。

お役に立てれば!!

...

古い(1/23/19より前の)回答

だから私はそれを理解しました。ジェームズ・マクラフリンが私に必要なナッジをくれました。

www.yourdomain.comとyourdomain.comを処理するgh-pages Project Pagesリポジトリのカスタムドメインをセットアップするには(リポジトリにgh-pagesブランチがすでにあると想定):

  1. プロジェクトリポジトリからgh-pagesブランチ。内容を含むCNAMEファイルを作成しますyourdomain.com。コミットしてからプッシュします。
  2. DNSマネージャーで、2つのcnameレコードを設定します。1つはルートアペックス(@)用で、もう1つはwww用です。両方ともを指しYOURusername.github.ioます。DNSプロバイダがサポートしていない場合はALIAS根尖(@)のレコードを、単に作成Aにレコードその点を192.30.252.153192.30.252.154
  3. ネームサーバーが更新されるまで待ちます。

    dig yourdomain.com +nostats +nocomments +nocmd


14
2012年4月19日現在、GitHubのドキュメントで204.232.175.78IPアドレスとして使用されています。
Aseem Kishore 2012

31
2014年2月6日のチェックとgithubのドキュメントによると、次のIPアドレスを指すDNS Aレコードを作成します:192.30.252.153、192.30.252.154。
ダニー

2
「207.97.227.245または204.232.175.78を指すAレコードを使用している場合、これらのサーバーから直接ページを提供しないため、DNS設定を更新する必要があります。」help.github.com/articles/my-custom-domain-isn-t-working - 3/8/14
eddywashere

11
ネイキッド@ドメインからCNAMEレコードを設定することはできないと思います。そのため、ネイキッドドメインからwwwサブドメインへのリダイレクトを処理するには、Aレコードが必要です。クラウドホストの問題です。固定IPの保証はありません。
スーパールミナリー2014年

2
@rynop GoDaddyでは、@とwwwをyourusername.github.ioに許可していません。サブドメインごとにCNAMEレコードは1つだけです:(
Tejas Manohar 2014

241

概観

ドキュメントは、それがに来るとき混乱少しあるページをプロジェクトとは反対に、ユーザーページ。もっとやらなければならないような感じがしますが、実際はとても簡単です。

それには以下が含まれます:

  1. ネイキッド(wwwなし)ドメインに2つの静的Aレコードを設定します。
  2. GitHub URLを指すwwwのCNAMEレコードを1つ作成します。これにより、wwwリダイレクトが処理されます。
  3. gh-pagesブランチのプロジェクトルートにCNAME(大文字)というファイルを作成します。これにより、応答するURLがGithubに通知されます。
  4. すべてが伝播するのを待ちます。

あなたが得るもの

コンテンツはhttp://nicholasjohnson.comという形式のURLから提供されます。

訪問http://www.nicholasjohnson.comは、独自ドメインの301リダイレクトを返します。

パスはリダイレクトによって尊重されるため、http: //www.nicholasjohnson.com/angularへのトラフィックはhttp://nicholasjohnson.com/angularにリダイレクトされます。

リポジトリごとに1つのプロジェクトページを作成できるため、リポジトリが開いている場合は、好きなだけプロジェクトページを作成できます。

ここにプロセスがあります:

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ページにリダイレクトし、ネイキッドドメインに301リダイレクトすることです。

これは私が自分のサイトhttp://nicholasjohnson.comに使用する構成のスクリーンショットです。

Github Static Pagesに必要なAおよびCNAMEレコード

3. CNAMEファイルを作成する

CNAMEというファイルをgh-pagesブランチのプロジェクトルートに追加します。これには、提供するドメインを含める必要があります。コミットしてプッシュするようにしてください。

例えば

nicholasjohnson.com

このファイルは、このリポジトリを使用してこのドメインへのトラフィックを処理するようにGitHubに指示します。

4.待つ

5分待ってください。プロジェクトページが公開されます。


1
いいえ、apexドメインには静的IPがあります。wwwサブドメインにはCNAMEがあります。
超光速2014年

4
@superluminary、私はあなたのプロセスを繰り返しました、そして私は2つの問題を抱えています、1)DNS共有にfreeDNS afraid.orgを使用しています、それは末尾を追加することを許可しません。username.github.io ..で2)末尾に。を付けずにgithub.io urlを追加すると、mydomain.comは機能しますが、www.mydomain.comにアクセスできません??
bistaumanga 2014

4
GitHubのドキュメントを介して理解できなかった部分は、プロジェクトに使用するURLでした。この回答をありがとう:「これはユーザー名であり、プロジェクト名ではありません。」使用するyourUserName.github.io.
pkamb

1
私はこのソリューションを更新し、実際に実行することをお勧めします。@ホストにCNAMEを使用するなど、他の方法で機能させることもできますが、電子メールが壊れる可能性があります。これが私が見つけた最良のソリューションです。ありがとうございました。
Steven L.

1
ありがとうございました!DNSのCNAMEレコードの正しい値で停止していました-サービスを提供しようとしているその組織の下のプロジェクトに関係なく、organization.github.ioだけです。(つまり、organization.github.io
repo

21

リクエストを www.mydomain.comにリダイレクトする代わりに、ドメインをどのように表示するのか疑問に思っている場合は、次のことを試してください。wwwmydomain.com

gh-pagesブランチのCNAMEファイルは1行になります。

www.mydomain.com(の代わりにmydomain.com

リダイレクトの設定に関係なく(つまり、gs-pagesブランチのCNAMEファイルの内容に関係なく)、DNSプロバイダーを使用して、次のように設定する必要があります。

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io

@zwacky CNAMEを単に@に向けることができないのはなぜですか?「www.mydomain.com」と「mydomain.com」が潜在的に異なるIPに解決されるのはなぜですか?
aaa90210 2017年

19

簡潔な答え

これらの詳細な説明は素晴らしいですが、OPの(そして私の)混乱は1つの文で解決できます:「特定のプロジェクトを無視してDNSをGitHubのユーザー名または組織に転送し、プロジェクトリポジトリに適切なCNAME ファイルを追加してください:GitHubが送信しますリポジトリ内のファイルに基づいた適切なプロジェクトへの適切なDNS


1
「DNSを送信する」という意味がわかりません。
ceving

DNSクエリをリダイレクトして、特定のドメイン名を持つHTTPリクエストが応答として適切なドキュメントを取得できるようにします。
ジムピバルスキ

13

2013年8月29日の時点で、Githubのドキュメントは次のように主張しています。

警告:http ://username.github.io/projectnameのようなプロジェクトページのサブパスは、プロジェクトのカスタムドメインにリダイレクトされません。


3
彼らがなぜこの振る舞いを追加したのか混乱しています。私の.comがgithubページを指すようにしたいのですが、その逆ではありません。
ジョーダンスケール

9
私もこれに戸惑いました。私が理解したところでは、yoursite.comをgithubページに向けることはできますが、yourusername.github.io / yoursiteはyoursite.comにリダイレクトしません。yoursite.comは引き続き機能するため、問題ありません。DNSレコードを更新し、それが解決するまでお待ちください。help.github.com/articles/...
eddywashere

これは、ウェブサイトにSEO(検索エンジン最適化)の影響があるはずです。グーグルから301(「永久」)リダイレクトを適用するためのいくつかの理由の一つである複数のドメインからアクセス可能なコンテンツのランキング結果を降格すると言われているusername.github.io/projectnameのをwww.projectname.com
BorromeanNot 2016年

3

今日は物事がはるかに簡単です!

  1. ポイントするようにApexドメイン(@)レコードを更新する

192.30.252.154

192.30.252.153

  1. github repo設定のCustomeドメインフィールドを編集します。

enter image description here

  1. wwwおよびその他のサブドメインは、CNAMEとしてapexドメインに更新できます。

2

少しイライラした後、PairNICを使用している場合は、「カスタムDNS」で「Web転送」設定を有効にし、username.github.io / projectアドレスを指定するだけで、頂点レコードとサブドメインレコードの両方が自動的に設定されます。受け入れられた回答で提案されていることを正確に実行しているようです。ただし、手動でレコードを追加しても、まったく同じことはできません。非常に奇妙な。とにかく、それを理解するのにしばらく時間がかかったので、他のみんなの問題を救うために共有したいと思いました。


0

rynopsuperluminaryによって提供されるものとは少し異なる私のステップを共有したいと思います

  • 以下のためにA録音まったく同じであるが、
  • を作成するのCNAMEwwwはなく、空白のドメイン(non-www)にリダイレクトしたい

この構成は、優先ドメインのガイダンスを参照していますwwwto non wwwまたはその逆のドメイン設定は、ドメインプロバイダーごとに異なる場合があります。私のドメインはGoDaddyの下にあるので、ドメイン設定の下で 、サブドメイン転送(301)を使用して設定しました。

ドメインがGithubリポジトリを指すようにした結果、両方のURL mastergh-pagesブランチのすべてのURLが提供され、以下にリストしたものと同様に、優先ドメインに移動します。

主人

ブランチにCNAMEファイルを作成するmaster(私のユーザーリポジトリで確認してください)。

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

gh-ページ

ブランチに同じCNAMEファイルを作成するgh-pages(私のプロジェクトリポジトリで確認してください)。

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

CNAME上記のファイルに加えて、ページリポジトリのルートで名前が付けられたファイルを作成して、GitHubページでのJekyll処理を完全にバイパスする必要がある場合があり.nojekyllます。


3
私はgodaddyを使用しないことをお勧めしますが、個人的な意見
MMachinegun
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.