GitHub Pages
GitHub Pages の種類
GitHub Pages には大きく3種類あります。正式な名称は兎も角次の3つです。
- Organization pages
- User pages
- Project pages (Repository pages)
Organization page
Organization 毎に作れるページです。"org" という名前の Organization があるとき、"org.github.com" というリポジトリを作ると、そのマスターブランチの中身が GitHub Pages として公開されるようになります。アドレスは、"http://org.github.com" になります。
User page
User 毎に作れるページです。本質的には、Organization と同じです。 Jekyll を利用してブログを構築しているユーザが多いようです。アカウント名が "user" のとき、 "user.github.com" というリポジトリを作ると、そのマスターブランチの中身が GitHub Pages として公開されるようになります。アドレスは、"http://user.github.com" になります。
Project page / Repository page
リポジトリ毎に作れるページです。リポジトリに追加されたブランチ "gh-pages" の中身が GitHub Pages として公開されるようになります。アカウント名が "user" で、リポジトリ名が "repo" のとき、アドレスは、"http://user.github.com/repo/" になります。
GitHub Pages に独自のドメインを設定する
GitHub Pages には独自ドメインを設定することができます。ここでは設定方法については 解説しませんが、注意する点を示しておきます。公式のドキュメントを読むのが最も良いでしょう。英語のテキストしか用意されていませんが、シンプルにまとめられています。
トップレベルドメインの割り当て
DNSレコードによってトップレベルドメインを割り当てるときには、CNAME を利用できません。 これが最も注意するべき点です。サブドメインであれば CNAME で動作しますが、トップレベルドメインの場合には、A レコードないし、Alias レコードを利用します。
いくつかの Web の資料では、このことについて、すべて同じように CNAME で設定する、と書かれたものが見受けられますが、2014年5月現在、それは誤りです。
各社のサービスが Alias レコードについて対応しているかどうかを確認するのは面倒なので、A レコードで対応するのが無難であると思います。A レコードは公式で設定方法が示されています。次のふたつの アドレスに対して A レコードを設定します。
- 192.30.252.153
- 192.30.252.154
例えば、"example.com" に対するアクセスを GitHub Pages に飛ばすときには、この2つのアドレスに対して、A レコードを設定します。"www.example.com" ドメインであれば CNAME が使える(ハズな)のですが、ユーザビリティを考慮して www も登録しておくとのことであれば、こちらも A レコードで "www.exampl.com" に対して、2つのアドレスを設定してしまうのが良いと思います。すぐに GitHub Pages に対して設定したレコードが CNAME と A とで混在することを防げるので。
その他のTips
index.html ページに注意
GitHub は Unix/Linux 系のサーバで動作していますから、大文字と小文字が区別されます。したがって、あるディレクトリの URL にアクセスするときは、index.html 以外は参照されません。Index.html であったり、INDEX.html は参照されないので注意してください。Windows や Max の上では正常に表示され、サーバにアップしたら表示されなくなる、という現象は良く起こりますが、GitHub についても同様です。必ず小文字で index.html としてください。
GitHub の場合になおタチが悪いのは、一度 Index.html としてアップしてしまうと、小文字の index.html をアップしても、GitHub の(リモート)リポジトリ内に残るファイル名は Index.html のままである点です。大文字小文字を無視して上書きされるので、一度該当ファイルを削除するなどの対応が必要になります。