この記事は最終更新日から 2 年以上が経過しており、内容が古くなっている可能性があります。
Cloudflare Pagesでドメイン設定が完了したら、wwwあり・なしを統一するためのリダイレクトと、デプロイで生成されるURLのリダイレクトを行う。
URLのリダイレクト設定は、public配下の_redirectsファイルではなく、管理画面から行う。
wwwありとなしを統一する
Netlifyではwwwドメイン推奨だったため、wwwあり・なしの設定をする必要がなかったが、Cloudflare Pagesではデフォルトだとwwwあり・なしドメインが混在している状態になっている。これはSEO上よくないので、どちらかに統一する必要がある。
Redirect Rulesで設定
当サイトはwwwありのドメインで運営しているので、wwwなしをwwwありへリダイレクトする設定を行った。
追記:Page Rulesは今後廃止予定のため、Redirect Rulesで設定する方法に修正しました。
新規登録アカウントでは、フリープランが2024年7月1日、プロおよびビジネスプランが2024年8月1日、エンタープライズプランが2024年10月1日以降に廃止される。既存アカウントでも、2025年1月6日以降は全プランで新規Page Rulesの作成が不可に、2025年は新ルールへの移行期間にあたるため、作成済みのPage Rulesの編集も不可になる予定。
Relevant dates - Page Rules migration guide · Cloudflare Rules docs
メニュー Rules > Redirect Rules に進む。

「+Create rule」ボタンをクリック。
各項目を入力・選択

- Rule name(必須):任意のルール名を入力
- ラジオボタンは「Custom filter expression」のまま
- 「When incoming requests match…」の項目を以下のようにする
- Field:
Hostnameを選択 - Operator:
equals - Value:リダイレクトしたいホスト名
example.comを入力
- Field:
- 「Then…」以下「URL redirect」の項目
- Type:
Dynamicを選択 - Expression:
concat("https://www.example.com, http request.uri.path)と入力 - Status Code:
301 - 「Preserve query string」のチェックボックスにチェックを入れる
- Type:
「Deploy」ボタンをクリックで完了

Page RulesからRedirect Rulesに変更する場合
- 「Save As Draft」ボタンで一旦下書き保存
- Page Rulesの設定を停止
- Redirect Rulesの設定を有効化
- Page Rulesを削除
という手順で行う。
- Migrate Forwarding URL - Page Rules migration guide · Cloudflare Rules docs
※Page Rulesからの変更方法。「Visual Guide」が分かりやすい
デプロイで生成されるURLをリダイレクトする

Cloudflare Pagesにデプロイするたびに、(リポジトリ名)-5cx.pages.devのサブドメインサイトが生成される。これらをボットにクロールされるとまずいので、すべてカスタムドメインの方にリダイレクトする必要がある。

HOMEメニューの「Bulk Redirect」に進み、「Create bulk redirect list」ボタンをクリックすると、リダイレクト設定を追加する画面に遷移する。

手動での追加は、下の「Or, manually add URL redirects」から行う。クリックすると項目が開くので、必要な項目を入力する。

- 元のURL:
(リポジトリ名)-5cx.pages.devを入力 - 対象のURL:公開しているドメインを入力
- ステータス:301(永久リダイレクト)

「Edit parameters」を開くと、パラメーターの編集ができる。今回は以下の2項目にチェックを入れた。
- Subpath matching:URL以下のパスに一致させる。
old-domain.com/hoge/をnew-domain.com/hoge/にリダイレクト。 - include subdomain:リダイレクト対象にサブドメインを含める。
example.comを指定するとa.example.comもb.example.comも含まれる。
「Continue to Redirect Rules」に進む。

ルールの名前を設定する。分かりやすければ名称は何でもよいと思う。
そして、下のリダイレクト設定のリストから対象のものを選ぶ(と言っても1個しかないが)。「Save and Deploy」ボタンを押す。

設定が保存される。

補足:_redirectsファイルによるリダイレクト
ディレクトリやページごとのリダイレクト設定は、publicフォルダ配下の_redirectsファイルで行う。
// 記述形式
[source] [destination] [code?]
source:元のディレクトリ・ページ(必須)destination:遷移先ディレクトリ・ページ(必須)code:リダイレクトのコード(オプション。デフォルトは302)