Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

URL 正規化の仕組み

最終更新 Markdown で表示Agent セットアップ

URL 正規化は、受信 URL の区切り文字、エンコード済み要素、リテラルバイトを書き換え、一貫した書式に揃えます。

たとえば、www.example.com/hello に一致する URL のリクエストをブロックする WAF カスタムルールがあるとします。エンコード済み要素を含むリクエスト(www.example.com/%68ello)は、このルールではブロックされません。Cloudflare のグローバルネットワークで受信 URL を正規化すると、URL を含むルール式をシンプルにできます。

利用できる URL 正規化の種類は次の 2 つです。

URL 正規化が行われる場所は、設定内容 によって決まります。

各設定と、リクエスト URL への影響の例は URL 正規化の例 を参照してください。

RFC 3986 正規化

RFC 3986 に従う URL 正規化の内容は次のとおりです。

  • 次の unreserved 文字は パーセントデコード されます(%XX 形式から元の文字に戻します)。
    • 英字: a-zA-Z%41-%5A%61-%7A からデコード)
    • 数字: 0-9%30-%39 からデコード)
    • ハイフン -%2D)、ピリオド .%2E)、アンダースコア _%5F)、チルダ ~%7E
  • 次の reserved 文字はエンコードもデコードもしません: : / ? # [ ] @ ! $ & ' ( ) * + , ; =
  • そのほかの文字(リテラルバイト値など)はパーセントエンコードします。
  • パーセントエンコード表現は大文字に揃えます。
  • URL パスは Remove Dot Segments プロトコルに従って正規化します。

Cloudflare 正規化

Cloudflare の URL 正規化を使うと、受信リクエストの URL に対して、次の順で追加の正規化が適用されます。

  1. バックスラッシュ(\)をフォワードスラッシュ(/)に正規化します。
  2. 連続するフォワードスラッシュをまとめます(たとえば /// になります)。
  3. 得られた URL に RFC 3986 正規化 を適用します。

役に立ちましたか?