Cloudflare Pages で、ブログの中に置いていたページを、別のアドレスへ移しました。古いアドレスを開いた人を新しいアドレスへ案内するために使ったのは、_redirects という名前のファイル1つです。中身は2行でした。
この記事は、そのときの記録です。作業は AI(Claude Code)に頼み、私は結果を確かめました。
何を移したのか
このブログ(https://shigotonokobito.pages.dev/)の中に、星座占いのページを置いていました。アドレスは次のような形です。
- 最初のページ:
https://shigotonokobito.pages.dev/uranai/ - 星座ごとのページ:
https://shigotonokobito.pages.dev/uranai/leo/など12枚
これを、星座占い専用のアドレス https://kyo-no-seiza-uranai.pages.dev/ に移しました。ブログと占いを、別のサイトとして分けたかったからです。
古いアドレスは、すでに Google にリクエストしていました。そのまま消すと、古いアドレスを開いた人には「ページがありません」と出てしまいます。
書いた2行
ブログの公開用のフォルダのいちばん上に、_redirects という名前のファイルを置きました。拡張子は付けません。中身は次の2行です。
/uranai https://kyo-no-seiza-uranai.pages.dev/ 301/uranai/* https://kyo-no-seiza-uranai.pages.dev/:splat 301
1行が「元のアドレス」「移す先」「種類の番号」の順に並んでいます。間は半角の空白です。
2行目の * と :splat で、星座ごとのページも、同じ名前のまま移せます。 たとえば /uranai/leo/ を開くと、https://kyo-no-seiza-uranai.pages.dev/leo/ へ移ります。12枚を1行ずつ書く必要はありませんでした。
1行目は、最後の「/」がない /uranai を開いた人のための行です。
301 を選んだ理由
最後の番号は、転送の種類を表します。Cloudflare の公式の説明「Redirects」によると、使えるのは 301、302、303、307、308 で、書かなければ 302 になります。
Google の説明「リダイレクトと Google 検索」には、次のように書かれています。
- 301 と 308 は「ずっと移した」という意味。Google は、移した先を正式なページとして扱う手がかりにする。
- 302 と 307 は「いっときだけ」という意味。検索結果には元のアドレスが残りやすい。
今回は元に戻す予定がないので、301 にしました。
転送のほかに変えたこと
転送だけでは足りないので、次の3つも変えました。
- 移した先のページに、「正式なアドレスはここです」という印を入れ直した。 前はブログ側のアドレスを指していたので、新しいアドレスに書きかえました。
- サイトマップを分けた。 ブログのサイトマップから占いのページを外し、占いのサイトに13ページぶんのサイトマップを置きました。
- ブログのメニューのリンクを、新しいアドレスに変えた。 転送でも開けますが、遠回りになるためです。
占いのサイトは Search Console に新しく登録し、サイトマップも送りました。
確かめたこと
公開したあと、古いアドレスを3つ開いて、どこへ移るかを確かめました。
| 開いたアドレス | 結果 |
|---|---|
/uranai | 301 で新しい最初のページへ |
/uranai/ | 301 で新しい最初のページへ |
/uranai/leo/ | 301 で新しいしし座のページへ |
3つとも、思ったとおりに移りました。
気をつけたい点
公式の説明には、次のような点も書かれています。
*は、1行に1つだけ使える。- 同じ元のアドレスが何行もあるときは、上の行が使われる。
- 転送は、元のアドレスに本物のファイルが残っていても行われる。
- 書ける行数には上限がある(固定の転送は2,000件まで)。
3つ目の点があるので、古いページのファイルが残っていても転送はされます。私は念のため、ブログ側から古いページのファイルを消しました。
まとめ
- Cloudflare Pages で古いアドレスから転送するには、公開用のフォルダに
_redirectsを置く。 - フォルダごと移すなら、
*と:splatを使えば1行で済む。 - 元に戻さないなら、301 を書く。
- 転送のほかに、正式なアドレスの印、サイトマップ、メニューのリンクも直す。
移した先のページが Google に載ったかどうかは、まだ確かめられていません。わかったら、この記事に書き足します。