Cloudflare Pages の Redirects が上限に達してしまう問題
Cloudflare Pages の Redirects 機能を利用するために _redirects
ファイルを設定した。
しかし、Redirects 機能の上限(後述)に達していないのにリダイレクトが機能しない場合がある。
機能の上限について
Cloudflare Pages の Redirects には以下のような制限が存在している。
- 静的リダイレクト数の上限は 2,000 件
- 動的リダイレクト数の上限は 100 件
- 合計リダイレクト数の条件は合わせて 2,100 件
これらの制限に達してしまうと、新たなリダイレクトを追加することができなくなる。
(正確には書いたとしても機能しなくなる。)
原因
動的リダ イレクトが静的リダイレクトよりも先に評価されている可能性がある。
静的リダイレクトよりも先に動的リダイレクトを書いてしまうと、以降のリダイレクトはすべて動的リダイレクトとして扱われるため、上限に達してしまう。
Cloudflare Pages のドキュメントでは、以下のように触れられている。
Static redirects should appear before dynamic redirects.
解決策
_redirects
ファイルの中で、静的リダイレクトを先に書くようにする。
# 静的リダイレクト
/home301 / 301
/home302 / 302
/querystrings /?query=string 301
# 動的リダイレクト
/blog/* /:splat
/products/:code/:name /products?code=:code&name=:name