Web サーバーやアプリケーションによって、URL 内のエンコード済みフォワードスラッシュ(%2F)の扱い方は異なります。Cloudflare は RFC 3986 ↗ に従い、%2F を自動では / に正規化しません。/ は URL の reserved 文字であり、デコードするとパスの意味が変わる可能性があるためです。
一方、多くのオリジンサーバーはリクエスト処理時に %2F を自動で / にデコードします。オリジンがこの動作をする場合は、Cloudflare のエッジでも同じ正規化を行い、リクエスト処理、ルール評価、ログの一貫性を保てます。
エンコード済みフォワードスラッシュ(%2F)を、後続の ルール評価の前に通常のスラッシュ(/)へ正規化するには、新しい URL rewrite rule を作成し、url_decode() 関数を使った動的な URL パスのリライトを定義します。
Expression Editor に入力するテキスト:
(lower(raw.http.request.full_uri) wildcard "*%2f*")Path > Rewrite to > Dynamic のあとに入力するテキスト:
url_decode(http.request.uri.path)この変換により、リクエストパス内の %2F は常に / として扱われます。URL パス一致に依存するルールを設定するときに、正規化の違いによる不一致を防げます。