GitHub Pagesとwwwなしドメイン

wwwなしドメインをGitHub Pagesで運営しようとAレコードを使って設定すると、全てのリクエストが302 Foundで処理されるようになる。特に実用上の問題はないが、パフォーマンス上のデメリットは大きい。www付きで運営するのが手っ取り早いが、wwwなしでどうしても運営したい場合はCloudFlare経由にするのがコストが低い解決法だろう。

CloudFlareにはCNAME Flatteningという機能があって、これによりCNAMEレコードを使ってwwwなしドメインを設定できるようになっている。これを使って設定すると302 Foundによるリダイレクト経由になることを回避することができる。設定は特に(GitHub Pagesを使おうというような人には)難しいことはない。

GitHub Pages側が提供するwwwあり→wwwなしへの301 Moved Permanentlyによる転送も問題なく動作する。

またこの機能はCloudFlareのコア機能であるCDNやセキュリティ対策などとは別に提供されているようだ。そのためDNS Settingsの各レコードでActiveのアイコンをグレーアウトさせても、このCNAMEレコードによるドメインの割り当てはそのまま機能するようになっている。今のGitHub PagesはCDN経由での配信になっているので、必要ないと思うのならCloudFlareのコア機能は無効にしても良いだろう。