<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hugo on もざぶれなるままに</title><link>https://mitz17.com/tags/hugo/</link><description>Recent content in Hugo on もざぶれなるままに</description><generator>Hugo -- gohugo.io</generator><language>ja-JP</language><lastBuildDate>Wed, 30 Sep 2026 19:00:00 +0900</lastBuildDate><atom:link href="https://mitz17.com/tags/hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>【画像多め】ブログのホスティング先をGitHub PagesからCloudflare Pagesに移行する手順</title><link>https://mitz17.com/blog/github-pages-to-cloudflare-pages/</link><pubDate>Wed, 30 Sep 2026 19:00:00 +0900</pubDate><guid>https://mitz17.com/blog/github-pages-to-cloudflare-pages/</guid><description>&lt;h2 id="目次"&gt;目次&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e3%81%93%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%ae%e6%83%b3%e5%ae%9a%e8%aa%ad%e8%80%85" &gt;この記事の想定読者&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e3%81%aa%e3%81%9cgithub-pages%e3%81%8b%e3%82%89%e7%a7%bb%e8%a1%8c%e3%81%99%e3%82%8b%e3%81%ae%e3%81%8b" &gt;なぜGitHub Pagesから移行するのか&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#github-pages%e3%81%a8cloudflare-pages%e3%81%ae%e6%af%94%e8%bc%83" &gt;GitHub PagesとCloudflare Pagesの比較&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e7%a7%bb%e8%a1%8c%e5%89%8d%e3%81%ab%e7%a2%ba%e8%aa%8d%e3%81%99%e3%82%8b%e3%81%93%e3%81%a8" &gt;移行前に確認すること&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#1-workers--pages%e3%81%8b%e3%82%89%e6%96%b0%e3%81%97%e3%81%84%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8b" &gt;1. Workers &amp;amp; Pagesから新しいアプリケーションを作成する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#2-github%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%82%92%e6%8e%a5%e7%b6%9a%e3%81%99%e3%82%8b" &gt;2. GitHubリポジトリを接続する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#3-hugo%e3%81%ae%e3%83%93%e3%83%ab%e3%83%89%e8%a8%ad%e5%ae%9a%e3%82%92%e5%85%a5%e5%8a%9b%e3%81%99%e3%82%8b" &gt;3. Hugoのビルド設定を入力する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#4-pagesdev%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%82%92%e7%a2%ba%e8%aa%8d%e3%81%99%e3%82%8b" &gt;4. &lt;code&gt;pages.dev&lt;/code&gt;で表示を確認する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#5-%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b" &gt;5. カスタムドメインを追加する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#6-github-pages%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b" &gt;6. GitHub Pagesの設定を削除する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#7-github%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%82%92private%e3%81%b8%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b" &gt;7. GitHubリポジトリをPrivateへ変更する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#8-pagesdev%e3%81%b8%e3%81%ae%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%82%92%e7%8b%ac%e8%87%aa%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e3%81%b8%e8%bb%a2%e9%80%81%e3%81%99%e3%82%8b" &gt;8. &lt;code&gt;pages.dev&lt;/code&gt;へのアクセスを独自ドメインへ転送する&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e3%81%95%e3%81%84%e3%81%94%e3%81%ab" &gt;さいごに&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="この記事の想定読者"&gt;この記事の想定読者&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;ブログのソースをGitHubリポジトリに置いている人&lt;/li&gt;&#10;&lt;li&gt;Hugoで作成したブログや静的サイトをGitHub Pagesで公開している人&lt;/li&gt;&#10;&lt;li&gt;ブログのホスティング先をGitHub PagesとCloudflare Pagesで迷っている人&lt;/li&gt;&#10;&lt;li&gt;ブログのホスティング先をGitHub PagesからCloudflare Pagesに移行したい人&lt;/li&gt;&#10;&lt;li&gt;(独自ドメインを持っている人で)無料でブログを公開したい人&lt;/li&gt;&#10;&lt;li&gt;独自ドメインをCloudflareで取得し、Cloudflare DNSで管理している人&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p style="text-align: center;"&gt;&#10; &lt;img src="github-pages-cloudflare-pages-migration-comparison.png" alt="GitHub PagesからCloudflare Pagesへ移行する前後の構成図" width="640"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;移行前はGitHubがソース管理・ビルド・公開をまとめて担う。移行後はGitHubをPrivateなソース管理に限定し、Cloudflare PagesがHugoのビルドと公開を担う。&#10;公開する独自ドメインは変えないため、読者がアクセスする&lt;strong&gt;URLはこれまでどおり維持できる&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;この記事の操作画面や料金・プランは変わることがある。実行時は公式ドキュメントも確認してほしい。&lt;/p&gt;&#10;&lt;h2 id="なぜgithub-pagesから移行するのか"&gt;なぜGitHub Pagesから移行するのか&#10;&lt;/h2&gt;&lt;p&gt;GitHub Pagesは、GitHubで管理している静的サイトを手軽に公開できる。独自ドメインやHTTPSも使えるため、Hugoブログの公開先として十分便利だ。&lt;/p&gt;&#10;&lt;p&gt;ただ、ブログのリポジトリには記事だけではなく、Hugoの設定、テーマ、レイアウト、ビルド設定なども入る。&lt;/p&gt;&#10;&lt;p&gt;そして、&lt;strong&gt;無料でGitHub Pagesを利用するにはリポジトリをPublicにしておく必要がある&lt;/strong&gt;。&#10;ついうっかり秘密の画像等がソースリポジトリに紛れ込んでしまったらジ・エンドである。&lt;/p&gt;&#10;&lt;p&gt;そこで、&lt;strong&gt;無料でPrivateリポジトリからページを公開してくれる&lt;/strong&gt;ホスティング先を見つけた。Cloudflare Pagesである。&lt;/p&gt;&#10;&lt;h2 id="github-pagesとcloudflare-pagesの比較"&gt;GitHub PagesとCloudflare Pagesの比較&#10;&lt;/h2&gt;&lt;p&gt;以下の上限・料金に関する情報は2026年10月2日時点のもの。最新情報は&lt;a class="link" href="https://docs.github.com/ja/pages/getting-started-with-github-pages/github-pages-limits" target="_blank" rel="noopener"&#10; &gt;GitHub Pagesの制限&lt;/a&gt;と&lt;a class="link" href="https://developers.cloudflare.com/pages/platform/limits/" target="_blank" rel="noopener"&#10; &gt;Cloudflare Pagesの制限&lt;/a&gt;を確認してほしい。&lt;/p&gt;&#10;&lt;table style="display: table; width: fit-content !important; max-width: 100%; margin: 0 auto;"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th&gt;項目&lt;/th&gt;&lt;th&gt;GitHub Pages&lt;/th&gt;&lt;th&gt;Cloudflare Pages&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;費用&lt;/td&gt;&lt;td&gt;無料（GitHub Free）&lt;/td&gt;&lt;td&gt;無料&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;ソース管理&lt;/td&gt;&lt;td&gt;GitHub&lt;/td&gt;&lt;td&gt;GitHub&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;GitHubとの連携&lt;/td&gt;&lt;td&gt;○&lt;/td&gt;&lt;td&gt;○&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Privateリポジトリ&lt;/td&gt;&lt;td&gt;GitHub FreeではPublicリポジトリのみ&lt;/td&gt;&lt;td&gt;○&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;ビルド&lt;/td&gt;&lt;td&gt;GitHub Actionsで自動化&lt;/td&gt;&lt;td&gt;ダッシュボードで自動化&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;無料プランのビルド上限&lt;/td&gt;&lt;td&gt;10回/時（カスタムGitHub Actionsワークフローは対象外）&lt;/td&gt;&lt;td&gt;500回/月&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;公開サイト容量&lt;/td&gt;&lt;td&gt;最大1GB&lt;/td&gt;&lt;td&gt;最大20,000ファイル&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;1ファイルあたりの上限&lt;/td&gt;&lt;td&gt;約105 MB&lt;/td&gt;&lt;td&gt;約26 MB&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;独自ドメイン&lt;/td&gt;&lt;td&gt;○（なくてもよい）&lt;/td&gt;&lt;td&gt;○（なくてもよい）&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;GitHubでソースを管理して、GitHub Pagesでビルド・公開の構成は単純で分かりやすい。&#10;一方、&lt;strong&gt;Privateリポジトリから自動デプロイしたい&lt;/strong&gt;場合はCloudflare Pagesが良い。&#10;私は上記の理由からPrivateリポジトリを利用可能なCloudflare Pagesに移行することにした。&#10;まぁPrivateにしてもstatic/ やページバンドルに紛れていたらアウトなんですけどね。。&lt;/p&gt;&#10;&lt;h2 id="移行前に確認すること"&gt;移行前に確認すること&#10;&lt;/h2&gt;&lt;p&gt;移行作業では、GitHub Pagesを先に止めない。まずCloudflare Pages上でサイトを公開し、&lt;code&gt;pages.dev&lt;/code&gt;のURLで表示を確認してから独自ドメインを切り替える。この順番なら、ビルドやDNSの設定に失敗しても、公開中のサイトを維持したまま修正できる。&lt;/p&gt;&#10;&lt;p&gt;作業前に、次の内容を控えておく。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;GitHub Pagesで公開しているブランチとデプロイ方法&lt;/li&gt;&#10;&lt;li&gt;Hugoのバージョン、ビルドコマンド、出力先ディレクトリ&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;このあと進める順番は以下のとおりである。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Workers &amp;amp; Pagesから新しいアプリケーションを作成する&lt;/li&gt;&#10;&lt;li&gt;GitHubリポジトリを接続する&lt;/li&gt;&#10;&lt;li&gt;Hugoのビルド設定を入力する&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;pages.dev&lt;/code&gt;で表示を確認する&lt;/li&gt;&#10;&lt;li&gt;カスタムドメインを追加する&lt;/li&gt;&#10;&lt;li&gt;GitHub Pagesの設定を削除する&lt;/li&gt;&#10;&lt;li&gt;GitHubリポジトリをPrivateへ変更する&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;pages.dev&lt;/code&gt;へのアクセスを独自ドメインへ転送する&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="cloudflare-pagesのプロジェクトを作成する"&gt;Cloudflare Pagesのプロジェクトを作成する&#10;&lt;/h2&gt;&lt;h3 id="1-workers--pagesから新しいアプリケーションを作成する"&gt;1. Workers &amp;amp; Pagesから新しいアプリケーションを作成する&#10;&lt;/h3&gt;&lt;p&gt;Cloudflareのダッシュボードで「Workers &amp;amp; Pages」を開き、右上の「アプリケーションを作成する」を選ぶ。&#10;その後、「始める」ボタンを押す。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-workers-pages-dashboard.png" alt="Cloudflare Workers &amp; Pagesの初期画面でアプリケーションを作成するボタンを示した画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-get-started.png" alt="Cloudflare Pagesを開始するリンクを示した画面" width="560"&gt;&lt;/p&gt;&#10;&lt;h3 id="2-githubリポジトリを接続する"&gt;2. GitHubリポジトリを接続する&#10;&lt;/h3&gt;&lt;p&gt;次に、「既存のGitリポジトリをインポートする」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-import-git-repository.png" alt="既存のGitリポジトリをインポートするボタンを示した画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p&gt;GitHubアカウントにログインし対象リポジトリを選び、「セットアップの開始」を押す。&#10;GitHubの認可時は、Cloudflare Workers &amp;amp; Pages GitHub Appにこのブログのリポジトリだけを許可しておくと管理しやすい。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-select-github-repository.png" alt="GitHubアカウントとリポジトリを選択してセットアップを開始する画面" width="720"&gt;&lt;/p&gt;&#10;&lt;h2 id="hugoのビルド設定"&gt;Hugoのビルド設定&#10;&lt;/h2&gt;&lt;h3 id="3-hugoのビルド設定を入力する"&gt;3. Hugoのビルド設定を入力する&#10;&lt;/h3&gt;&lt;p&gt;一般的なHugoサイトなら、設定値は次のとおりになる。&lt;/p&gt;&#10;&lt;table style="display: table; width: fit-content !important; max-width: 100%; margin: 0 auto;"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th&gt;設定項目&lt;/th&gt;&lt;th&gt;値&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;Production branch&lt;/td&gt;&lt;td&gt;&lt;code&gt;main&lt;/code&gt;（運用中の公開ブランチに合わせる）&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Framework preset&lt;/td&gt;&lt;td&gt;Hugo&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Build command&lt;/td&gt;&lt;td&gt;&lt;code&gt;hugo --gc --minify&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Build output directory&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;このサイトでは、画像のとおりビルドコマンドを&lt;code&gt;hugo --gc --minify&lt;/code&gt;に設定した。&lt;code&gt;--gc&lt;/code&gt;は不要になったキャッシュを掃除し、&lt;code&gt;--minify&lt;/code&gt;は生成するHTML・CSS・JavaScriptを圧縮する。出力先は&lt;code&gt;public&lt;/code&gt;にする。&lt;a class="link" href="https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/" target="_blank" rel="noopener"&#10; &gt;CloudflareのHugoガイド&lt;/a&gt;もあわせて確認してほしい。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-hugo-build-settings.png" alt="Cloudflare PagesでHugoのビルド設定とHUGO_VERSIONを設定する画面" width="620"&gt;&lt;/p&gt;&#10;&lt;p&gt;使っているHugoのバージョンを固定したい場合は、プロジェクトの環境変数に&lt;code&gt;HUGO_VERSION&lt;/code&gt;を追加する。ローカルとCIでバージョンがずれるとテーマやMarkdownの処理結果が変わることがあるため、再現性を優先するなら設定しておくと安心だ。本番環境とPreview環境の設定は分かれているため、Preview Deploymentも使う場合はPreview側にも同じ&lt;code&gt;HUGO_VERSION&lt;/code&gt;を設定する。&lt;/p&gt;&#10;&lt;h2 id="最初のデプロイと確認"&gt;最初のデプロイと確認&#10;&lt;/h2&gt;&lt;h3 id="4-pagesdevで表示を確認する"&gt;4. &lt;code&gt;pages.dev&lt;/code&gt;で表示を確認する&#10;&lt;/h3&gt;&lt;p&gt;デプロイを選ぶと、Cloudflare Pagesがリポジトリを取得し、Hugoを実行して&lt;code&gt;public/&lt;/code&gt;を配信する。完了すると以下の画面になり&lt;code&gt;https://&amp;lt;project&amp;gt;.pages.dev&lt;/code&gt;形式のURLが発行される。&lt;/p&gt;&#10;&lt;p&gt;デプロイ成功画面が表示されたら、発行された&lt;code&gt;pages.dev&lt;/code&gt;のURLを開いて確認する。ここではまだ独自ドメインを切り替えない。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-deployment-success.png" alt="Cloudflare Pagesのデプロイ成功画面" width="620"&gt;&lt;/p&gt;&#10;&lt;p&gt;独自ドメインに切り替える前に、このURLで適切に表示されていることを確認した。&lt;/p&gt;&#10;&lt;h2 id="独自ドメインをcloudflare-pagesへ切り替える"&gt;独自ドメインをCloudflare Pagesへ切り替える&#10;&lt;/h2&gt;&lt;h3 id="5-カスタムドメインを追加する"&gt;5. カスタムドメインを追加する&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pages.dev&lt;/code&gt;で問題がなければ、Cloudflare Pagesプロジェクトの「Custom domains」から独自ドメインを追加する。&lt;/p&gt;&#10;&lt;p&gt;プロジェクト画面で「カスタムドメイン」タブを開く。次に「カスタムドメインを設定」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-custom-domain-tab.png" alt="Cloudflare Pagesプロジェクトのカスタムドメインタブ" width="720"&gt;&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-custom-domain-start.png" alt="カスタムドメインを設定するボタンを示した画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p&gt;登録済みの独自ドメインを入力して「続行」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-custom-domain-input.png" alt="Cloudflare Pagesへカスタムドメインを入力する画面" width="620"&gt;&lt;/p&gt;&#10;&lt;p&gt;DNSをCloudflareで管理している場合は、表示されたDNSレコードを確認して「ドメインをアクティブにする」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-custom-domain-dns-record.png" alt="Cloudflare Pagesが提示するDNSレコードを確認する画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p&gt;DNSをCloudflareで管理しているドメインなら、案内に従ってCloudflare Pages用のDNSレコードを設定する。&lt;/p&gt;&#10;&lt;p&gt;設定直後はステータスが「初期化中」になる。DNSと証明書の処理が完了するまで待つ。画面上は反映まで最大48時間かかる場合があると案内されるが、筆者の環境では1分程度待ってページをリロードするとステータスが「アクティブ」になった。SSLが有効になれば設定は完了だ。表示や所要時間は変わるため、最新の手順は&lt;a class="link" href="https://developers.cloudflare.com/pages/configuration/custom-domains/" target="_blank" rel="noopener"&#10; &gt;Cloudflareのカスタムドメインガイド&lt;/a&gt;も確認してほしい。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-custom-domain-initializing.png" alt="Cloudflare Pagesのカスタムドメインが初期化中である画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-pages-custom-domain-active.png" alt="Cloudflare Pagesのカスタムドメインがアクティブになった画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p&gt;切替が完了したら&lt;code&gt;https://独自ドメイン/&lt;/code&gt;でページが表示されるようになっているのではないだろうか。&lt;/p&gt;&#10;&lt;h2 id="github-pagesの設定を削除する"&gt;GitHub Pagesの設定を削除する&#10;&lt;/h2&gt;&lt;h3 id="6-github-pagesの設定を削除する"&gt;6. GitHub Pagesの設定を削除する&#10;&lt;/h3&gt;&lt;p&gt;Cloudflare Pagesの独自ドメインで正しく表示できることを確認したら、古いGitHub Pages用の設定を削除する。GitHub Pagesを先に止めたりDNSを削除したりすると、一時的にサイトへアクセスできなくなるため、この作業はCloudflare Pagesでの公開確認後に行う。&lt;/p&gt;&#10;&lt;h3 id="6-1-古いdnsレコードを削除する"&gt;6-1. 古いDNSレコードを削除する&#10;&lt;/h3&gt;&lt;p&gt;DNS管理画面で、GitHub Pagesへ向いているレコードが残っていないか確認する。特に次のレコードは見落としやすい。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;185.199.108.153&lt;/code&gt; などGitHub PagesのIPアドレスを向いたAレコード&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;&amp;lt;ユーザー名&amp;gt;.github.io&lt;/code&gt; を向いたCNAMEレコード&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;www&lt;/code&gt;などサブドメインに残ったGitHub Pages向けのA/CNAMEレコード&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Cloudflare Pages用のレコードが正しく動いていることを確認したうえで、GitHub Pages用の不要なレコードだけを削除する。Cloudflare Pagesのレコードは削除しないよう、宛先を一つずつ見比べる。&lt;/p&gt;&#10;&lt;h3 id="6-2-github-actionsのgithub-pagesワークフローを削除する"&gt;6-2. GitHub ActionsのGitHub Pagesワークフローを削除する&#10;&lt;/h3&gt;&lt;p&gt;GitHub ActionsでGitHub Pagesをビルド・公開していた場合は、&lt;code&gt;.github/workflows/&lt;/code&gt; にあるGitHub Pages用ワークフローも不要になる。残したままPrivateリポジトリへ変更すると、pushごとに失敗したワークフローが走り、Actionsの利用枠も消費する。&lt;/p&gt;&#10;&lt;p&gt;GitHub Pages用だと確認できたワークフローだけを削除してコミットする。ほかのCI用ワークフローを誤って消さないよう注意する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git rm .github/workflows/&amp;lt;github-pages用ワークフロー&amp;gt;.yml&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Remove GitHub Pages workflow&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="リポジトリをprivateへ変更する"&gt;リポジトリをPrivateへ変更する&#10;&lt;/h2&gt;&lt;h3 id="7-githubリポジトリをprivateへ変更する"&gt;7. GitHubリポジトリをPrivateへ変更する&#10;&lt;/h3&gt;&lt;p&gt;独自ドメインで正しくページが表示できていることを確認できたら、GitHubのリポジトリ設定からVisibilityをPrivateへ変更する。&lt;/p&gt;&#10;&lt;p&gt;Freeプランの同志達はPrivateリポジトリではGitHub Pagesが使えないと思うが、念のためGitHub PagesがOFFになっていることも確認する。&lt;/p&gt;&#10;&lt;p&gt;変更後は、記事などを実際に少し編集してからpushし、Cloudflare Pagesのデプロイ一覧で新しいビルドが走ることを確認する。秘密情報や関係のないファイルをうっかり追加しないため、まず&lt;code&gt;git status&lt;/code&gt;で変更内容を確認する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git status&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 編集したファイルだけを指定して追加する&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add content/blog/&amp;lt;編集した記事&amp;gt;/index.md&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Verify Cloudflare Pages deployment&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cloudflare Pagesで新しいデプロイが成功し、編集内容がサイトに反映されていれば、Private化後の自動デプロイも正常に動作している。&lt;/p&gt;&#10;&lt;h2 id="pagesdevから独自ドメインへリダイレクトする"&gt;pages.devから独自ドメインへリダイレクトする&#10;&lt;/h2&gt;&lt;h3 id="8-pagesdevへのアクセスを独自ドメインへ転送する"&gt;8. &lt;code&gt;pages.dev&lt;/code&gt;へのアクセスを独自ドメインへ転送する&#10;&lt;/h3&gt;&lt;p&gt;Cloudflare Pagesでは、独自ドメインを設定したあとも&lt;code&gt;&amp;lt;プロジェクト名&amp;gt;.pages.dev&lt;/code&gt;のURLでサイトへアクセスできてしまう。検索エンジンや読者に複数のURLを使わせないため、&lt;code&gt;pages.dev&lt;/code&gt;へのアクセスを独自ドメインへリダイレクトしたほうがセクシーだよな。&lt;/p&gt;&#10;&lt;p&gt;ここではCloudflareの「一括リダイレクト」を使い、&lt;code&gt;document-6eg.pages.dev&lt;/code&gt;から&lt;code&gt;https://mitz17.com&lt;/code&gt;へ転送する設定を例にする。自分のプロジェクト名と独自ドメインへ読み替えてほしい。皆様のサイトがmitz17.comにリダイレクトされないように注意されたい。(別にええけど)&lt;/p&gt;&#10;&lt;h3 id="8-1-一括リダイレクトリストを作成する"&gt;8-1. 一括リダイレクトリストを作成する&#10;&lt;/h3&gt;&lt;p&gt;Cloudflareのアカウント画面で「配信とパフォーマンス &amp;gt; 一括リダイレクト」を開く。右上の「作成」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-bulk-redirects-create-list.png" alt="Cloudflareの一括リダイレクト画面で作成ボタンを示した画面" width="720"&gt;&lt;/p&gt;&#10;&lt;p&gt;リスト名を入力する。ここでは&lt;code&gt;pages_dev_redirect&lt;/code&gt;とした。名前は管理しやすい任意のものでよい。入力後、「次へ」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-bulk-redirects-name-list.png" alt="Cloudflareの一括リダイレクトリスト名を入力する画面" width="520"&gt;&lt;/p&gt;&#10;&lt;h3 id="8-2-pagesdevから独自ドメインへの転送先を登録する"&gt;8-2. &lt;code&gt;pages.dev&lt;/code&gt;から独自ドメインへの転送先を登録する&#10;&lt;/h3&gt;&lt;p&gt;「手動でURLリダイレクトを追加します」を開き、次の内容を入力する。&#10;ソースとターゲットURLは各々の環境に応じて読み替えてほしい。&lt;/p&gt;&#10;&lt;table style="display: table; width: fit-content !important; max-width: 100%; margin: 0 auto;"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th&gt;項目&lt;/th&gt;&lt;th&gt;設定値&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;ソースURL&lt;/td&gt;&lt;td&gt;&lt;code&gt;document-6eg.pages.dev&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;ターゲットURL&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://mitz17.com&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;ステータス&lt;/td&gt;&lt;td&gt;&lt;code&gt;301 - Permanent Redirect&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;画像のように、サブドメインも転送対象にする場合は「サブドメインを含める」にチェックを入れる。&#10;他にも好きなところにチェックを入れてもOKである。&lt;br&gt;&#10;入力後、「次へ」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-bulk-redirects-add-pages-dev-redirect.png" alt="pages.devから独自ドメインへの301リダイレクトを追加する画面" width="720"&gt;&lt;/p&gt;&#10;&lt;h3 id="8-3-リダイレクトルールを有効にする"&gt;8-3. リダイレクトルールを有効にする&#10;&lt;/h3&gt;&lt;p&gt;リストを作成しただけではリダイレクトは動かない。完了画面で「リダイレクトルールに進む」を選び、作成したリストをルールへ紐付ける。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-bulk-redirects-open-rule-setup.png" alt="Cloudflareのリダイレクトルール設定へ進む画面" width="520"&gt;&lt;/p&gt;&#10;&lt;p&gt;ルール名を入力し、リダイレクトリストとして先ほど作成した&lt;code&gt;pages_dev_redirect&lt;/code&gt;を選ぶ。最後に「保存してデプロイする」を選ぶ。&lt;/p&gt;&#10;&lt;p style="text-align: center;"&gt;&lt;img src="cloudflare-bulk-redirects-deploy-rule.png" alt="Cloudflareで一括リダイレクトルールを保存してデプロイする画面" width="520"&gt;&lt;/p&gt;&#10;&lt;p&gt;設定後は、&lt;code&gt;https://document-6eg.pages.dev&lt;/code&gt;へアクセスし、&lt;code&gt;https://mitz17.com&lt;/code&gt;へ301リダイレクトされることを確認する。ブラウザのキャッシュが残ることがあるため、シークレットウィンドウや&lt;code&gt;curl -I&lt;/code&gt;で確認すると確実だ。&lt;/p&gt;&#10;&lt;h2 id="さいごに"&gt;さいごに&#10;&lt;/h2&gt;&lt;p&gt;皆様のQOBLが向上することを切に願う。&lt;/p&gt;&#10;</description></item></channel></rss>