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)