公開する|Cloudflare Pages と GitHub をつなぎ、独自ドメイン・HTTPS・www の転送を設定する
このレッスンの要点
- Cloudflare Pages で GitHub のリポジトリを選び、Astro の設定(npm run build・dist)で公開します。main は本番、ほかのブランチはプレビューです
- ネームサーバーを移す前に、いまの DNS のレコードを控えます。そのあと、Pages の画面から example.com をつなぎます
- 常に HTTPS と、www から example.com への 301 転送を設定します。準備中は noindex にして、検索には出さずにおきます
GitHub のリポジトリとつなぐ
レッスン3で GitHub に置いたリポジトリを、Webサイトを置いて公開できる Cloudflare のサービス。GitHub とつなぐと、push するたびに自動でビルドして公開します。
くわしく見る とつなぎます。Cloudflare のダッシュボードの「Workers & Pages」から、アプリケーションを作る画面に進み、Workers ではなく Pages の側の「Import an existing Git repository」(「Connect to Git」と書かれていることもあります)を選びます。
プロジェクト名.pages.dev の住所になります。最初のビルドが終わると、プロジェクト名.pages.dev でサイトが見られます。ここから先は、手元のパソコンで作ったコミット(変更の記録)を、GitHub などのインターネット上のリポジトリに上げること。
くわしく見る するたびに自動で作り直されます。
本番とプレビュー
設定の画面で選んだ本番の同じリポジトリの中で、作業を枝分かれさせたもの。本番用のブランチ(main など)とは別に、ためしの作業を進められます。
くわしく見る(main など)に push すると、本番が新しくなります。ほかのブランチに push すると、本番はそのままで、そのブランチ用のプレビューの URL ができます。
| 本番 | プレビュー | |
|---|---|---|
| いつ作られる | 本番のブランチに push したとき | ほかのブランチに push したとき |
| 住所 | プロジェクト名.pages.dev と独自ドメイン | ブランチ名.プロジェクト名.pages.dev など |
| 検索 | 自分で noindex を付ける(プロジェクト名.pages.dev も。下の「準備中は検索に出さない」) | はじめから noindex が付く |
ネームサーバーを Cloudflare に移す
example.com を Pages につなぐには、ドメインを Cloudflare に足して、ネームサーバーを Cloudflare のものに変えます(レッスン4でくわしく)。いちばん大事なのは、移す前に、いまの ドメインの名前を、サーバーの住所(IP アドレス)に置きかえるしくみ。答えを持っているサーバーをネームサーバーといいます。
くわしく見る のレコードを控えておくことです。
ネームサーバーの名前は、1文字でもちがうと動きません。Cloudflare の画面に出たものを、そのままコピーして入れます。反映には時間がかかるので、Active になるのを待ちます。
独自ドメイン・HTTPS・www の転送
ドメインが Active になったら、Pages のプロジェクトの「Custom domains」から「Set up a domain」で example.com を足します。DNS の行は Pages が作ってくれるので、先に自分で CNAME を足さないようにします。www.example.com は Custom domains には足さず、下の手順で example.com に転送します。
| 設定 | どこで | 何が起きる |
|---|---|---|
| 独自ドメイン | Pages の Custom domains | example.com でサイトが開ける |
| 証明書 | (自動) | Active になったドメインに、HTTPS の証明書が自動で出る |
| 常に HTTPS | SSL/TLS の Edge Certificates の Always Use HTTPS(暗号化のモードが Off のときは、この項目が出てきません) | http:// で来た人を https:// に転送する |
| www の転送 | DNS の www の行と、Bulk Redirects(301) | www.example.com で来た人を example.com に転送する |
Bulk Redirects では、転送のリスト(元:www.example.com、先:https://example.com、301)と、そのリストを使うルールを作ります。公式の手順どおり、Preserve query string・Subpath matching・Preserve path suffix・Include subdomains の4つをオンにします。Subpath matching が無いと、www.example.com/articles/ のような下のページが転送されません。そのうえで、DNS に www の行(種類 A・名前 www・IPv4 アドレス 192.0.2.1・Proxied)を足します。Cloudflare の公式には、Redirect Rules の「Redirect from WWW to root」というテンプレートで www から example.com へ 301 で転送する例もあり、こちらでも作れます。作ったら、上の「やってみよう」の依頼文か curl で確かめます。
準備中は検索に出さない
独自ドメインでサイトが開けるようになっても、中身がそろうまでは検索に出したくありません。そこで、準備中は 「このページを検索結果に出さないで」という目印。ページの中(meta タグ)か、HTTP のヘッダ(X-Robots-Tag)で伝えます。
くわしく見る(検索に出さない目印)を付けておきます。目印は、ページの中の meta タグと、HTTP のヘッダ(ページといっしょに届く、目に見えない情報。X-Robots-Tag)のどちらでも効きます。
この作りは、上の「準備中は noindex にしてもらう依頼文」で Claude Code に作ってもらえます。プログラムの外から渡しておく値のこと。APIキーのような秘密の値を、コードに書かずにプログラムへ渡すときに使います。
くわしく見るの PUBLIC_NOINDEX は、Pages のプロジェクトの Settings の Environment variables で、本番に入れておきます。_headers は Cloudflare Pages が読むファイルで、どの住所にどのヘッダを付けるかを書きます。
自動で noindex が付くのは、プレビューの URL です。本番の プロジェクト名.pages.dev は、独自ドメインと同じ中身なので、_headers でいつも noindex を付けておきます(Cloudflare の公式のドキュメントにも、pages.dev の住所を検索に出さないための書き方の例があります)。
「DNS に CNAME の行を手で足せば、独自ドメインがつながる」わけではありません
やってみよう
- Cloudflare のダッシュボードの「Workers & Pages」から、Pages の「Import an existing Git repository」(「Connect to Git」と書かれていることもあります)で GitHub のリポジトリを選びます
- ビルドの設定は、Astro のプリセット(
npm run build・dist)にして「Save and Deploy」を押します プロジェクト名.pages.devで見られることを確かめます- Pages の Settings の Environment variables で本番に PUBLIC_NOINDEX=1 を入れてから、下の「準備中は noindex にしてもらう依頼文」で noindex の作りを入れて push します
- ドメインを Cloudflare に足し、いまの DNS のレコードを見くらべてから、レジストラでネームサーバーを Cloudflare のものに変えます
- ドメインが Active になったら、Pages の「Custom domains」で example.com を足します
- Always Use HTTPS をオンにし、DNS に www の行(A・192.0.2.1・Proxied)を足して、Bulk Redirects で www から example.com への 301 転送を作ります
確認問題
Pages のプロジェクトの画面で、いまの本番の URL と、いちばん新しいプレビューの URL を見つけて、両方を開いてみましょう。
この記事の用語
コース4 Webサイト編の目次
- 1Webサイトができるまでの全体図✓ できた
- 2どんなサイトにするか決める✓ できた
- 3Claude Code でサイトを作る✓ できた
- 4サーバーとドメインを選ぶ✓ できた
- 5公開する✓ できた
- 6検索に出るようにする✓ できた