web-dev-qa-db-ja.com

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

私は http://github.com reposの一つにgh-pagesブランチがあります。 GitHubプロジェクトのページは、私が行ってもうまくいきます http://myuser.github.com/myrepo

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

GitHubページが助けになります あなたのDNSにAレコードとCNAMEレコードを作るように言われます。 Aレコードは意味がありますが、DNSにどのCNAMEレコードを作成すればよいかわかりません。

gh-pagesのドキュメントでは、ユーザーページのリポジトリである 'charlie.github.com'のCNAMEレコードを作成するとしています。私はユーザページリポジトリを持っていません - 私はgh-pagesmyexample.comに使いたいプロジェクトリポジトリとwww.myexample.comブランチしか持っていません。

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

試してみるだけですが、www.myexample.comをすでに公開しているので、これでうまくいくようにして、間違いをしたくないと思います。

GitHubのサポートにメールしたところ、彼らの反応は

私の知る限り、あなたは両方が同じghページを指すことはできません。

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

誰かが以前にこれをうまくやったことがありますか?

392
rynop

1/23/19更新:

私の最後の答えから物事は(良くなるために)かなり変わった。この更新された答えはどのように設定するべきかをあなたに示します

  1. ルートエイペックス(example.com)
  2. サブドメイン(www.example.com)
  3. HTTPS(オプションですが強く推奨)

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

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

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

  1. レポから、をクリックして  タブ
  2. GitHub Pagesセクションまでスクロールします。 2つの選択肢があります。 
  3. master branchを選択すると、/README.mdをあなたのWebのindex.htmlとして扱います。 master branch /docs folderを選択すると、/docs/README.mdをあなたのWebのindex.htmlとして扱います。
  4. テーマを選んでください。
  5. GitHubがサイトを公開している間、しばらくお待ちください。 Your site is ready to be published atの横にあるリンクをクリックして、動作することを確認してください。

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

ここにカスタムドメイン名を入力してsaveを押してください。 

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

  • GitHub Pagesサイトに追加したカスタムドメインがexample.comの場合、www.example.comexample.comにリダイレクトされます。
  • GitHub Pagesサイトに追加したカスタムドメインがwww.example.comの場合、example.comwww.example.comにリダイレクトされます。

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

手順3:DNSエントリを作成する

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

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

@を指定するDNSプロバイダーもあれば、@を指定するものもあれば、(AWS Route35のように) サブドメインを空白のままにする というものもあります。どちらの場合でも、 these は作成するAレコードです。

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

これは最も紛らわしい部分です。

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

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

組織ページのサイトの場合、CNAMEのエントリはorgname.github.ioになります。例: 

ステップ5:DNSエントリを確認する

  1. Dig +noall +answer example.comを実行してAレコードを確認します。入力した4つの185.x.x.x IPアドレスが返されます。

  2. Dig www.example.com +nostats +nocomments +nocmdを実行してCNAMEレコードを確認します。 CNAME YOUR-GITHUB-USERNAME.github.ioが返されるはずです

これらのDNSエントリが解決または伝達されるまでに1時間ほどかかる場合があります。それができたら、ブラウザをhttp://example.comに開いてください。そうすればhttp://www.example.comにリダイレクトされるはずです。

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

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

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

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

enter image description here

Enforce HTTPSチェックボックスをクリックして、ブラウザでhttps://example.comを指定するだけです。 https://www.example.comをリ​​ダイレクトして開くべきです

それでおしまい!

GitHubは自動的にあなたのHTTPS証明書を最新の状態に保ち、そしてHTTPSを介したwwwリダイレクトへの頂点を処理するはずです。

お役に立てれば!!

...

古い(19年1月23日以前)答え

それで私はそれを考え出しました。 James McLaughlin 私に必要なナッジをくれました。

Www.yourdomain.comおよびyourdomain.comを処理するghページのProject Pagesリポジトリ用にカスタムドメインを設定するには(リポジトリにghページのブランチが既にあると仮定します)。

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

    Dig yourdomain.com +nostats +nocomments +nocmd

466
rynop

概要

ドキュメント は、ユーザーページとは対照的に、プロジェクトページに関しては少し混乱します。もっとやらなければならないように感じますが、実際にはプロセスは非常に簡単です。

それは含まれます:

  1. 裸の(no www)ドメイン用に2つの静的Aレコードを設定する。
  2. Wwwに1つのCNAMEレコードを作成します。これはGitHub URLを指します。これはあなたのためにWWWリダイレクトを処理します。
  3. Gh-pagesブランチのプロジェクトルートにCNAME(大文字)というファイルを作成します。これはGithubにどのURLに応答するべきかを伝えます。
  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ページにリダイレクトすることです。GitHubページは、301を裸のドメインにリダイレクトします。

これが私が自分のサイトに使用している設定のスクリーンショットです http://nicholasjohnson.com

A and CNAME records required for Github Static Pages

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

Gh-pagesブランチのプロジェクトルートにCNAMEというファイルを追加します。これはあなたが提供したいドメインを含むべきです。あなたがコミットしてプッシュすることを確認してください。

例えば.

nicholasjohnson.com

このファイルはGitHubにこのレポジトリを使ってこのドメインへのトラフィックを処理するように伝えます。

4.待つ

5分待って、プロジェクトページはライブになります。

237
superluminary

wwwリクエストをwww.mydomain.comにリダイレクトするのではなく、ドメインをmydomain.comとして表示する方法を疑問に思っている場合は、これを試してください。

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

www.mydomain.commydomain.comの代わりに)

リダイレクトを優先しても(つまり、gs-pagesブランチのCNAMEファイルに何が入っていても)、DNSプロバイダの場合のように、次のように設定する必要があります。

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

短い答え

これらの詳細な説明は素晴らしいですが、OPの(そして私の)混乱は1文で解決できます。"特定のプロジェクトを無視してGitHubに直接DNS sernameまたはorganization、プロジェクトリポジトリに適切なCNAME filesを追加します。GitHubはrespository。 "内のfilesに基づいて適切なDNSを適切なプロジェクトに送信します。

15
Jim Pivarski

2013年8月29日現在、 Githubのドキュメント と主張しています。

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

13
Amio

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

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

192.30.252.154

192.30.252.153

  1. あなたのgithubリポジトリ設定のCustomeドメインフィールドを編集してください。

enter image description here

  1. wwwなどのサブドメインは、CNAMEとしてapexドメインに更新できます。
3
Rafaf Tahsin

PairNIC を使用しているのであれば、 "カスタムDNS"の下の "Web転送"設定を有効にしてusername.githubを指定するだけでよいことがわかりました。 IO /プロジェクトアドレスとそれは自動的にあなたのための頂点とサブドメインレコードの両方を設定します。受け入れられた答えで提案されていることを正確に実行するようです。ただし、手動でレコードを追加してもまったく同じことはできません。非常に奇妙な。とにかく、それを理解するのにしばらく時間がかかったので、私は誰もが問題を解決するために共有したいと思いました。

2
Brandon Fosdick

my steps を共有したいのですが、これは rynopsuperluminary が提供するものとは少し異なります。

  • Aの場合、レコードはまったく同じですが
  • CNAMEに対してwwwを作成する代わりに、空白のドメインにリダイレクトすることをお勧めします(non-www

この設定は preferred domain のガイダンスを参照しています。 wwwからnon wwwへの、またはその逆のドメイン設定は、ドメインプロバイダごとに異なる可能性があります。私のドメインはGoDaddyの下にあるので、Domain Settingの下でSUBDOMAIN FORWARDING(301)を使って設定します。

ドメインをGithubレポジトリにポイントした結果、以下のリストのように、mastergh-pagesの両方のブランチのURLが優先ドメインに割り当てられます。

マスター

CNAMEブランチにmasterファイルを作成することによって(私の ser repository )でそれをチェックしてください。

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

gh-pages

gh-pagesブランチに同じCNAMEファイルを作成することによって(私の project repository でそれをチェックしてください)。

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

上記のCNAMEファイルに加えて、あなたはあなたのページレポジトリのルートに.nojekyllという名前のファイルを作ることによってGitHubページ上で完全に bypass Jekyll processing を必要とするかもしれません。

0
Chetabahana