コンテンツにスキップ

どのように機能するか

URL正規化は、受信したURL内の区切り文字、エンコードされた要素、およびリテラルバイトを修正し、一貫したフォーマット標準に準拠させます。

例えば、www.example.com/helloに一致するURLを持つリクエストをブロックするWAFカスタムルールを考えてみましょう。このルールは、エンコードされた要素を含むリクエスト — www.example.com/%68elloをブロックしません。Cloudflareのグローバルネットワーク上で受信したURLを正規化することで、URLを含むルールの表現を簡素化するのに役立ちます。

利用可能な2種類のURL正規化は次のとおりです:

URL正規化が行われる場所は、設定された設定に依存します。

異なる設定の例とそれがリクエストURLに与える影響については、URL正規化の例を参照してください。

RFC 3986正規化

RFC 3986に従って行われるURL正規化は次のとおりです:

  • 次の予約されていない文字はパーセントデコードされます:
    • アルファベット文字: a-z, A-Z%41-%5Aおよび%61-%7Aからデコード)
    • 数字文字: 0-9%30-%39からデコード)
    • ハイフン - (%2D)、ピリオド . (%2E)、アンダースコア _ (%5F)、およびチルダ ~ (%7E)
  • これらの予約文字はエンコードまたはデコードされません: : / ? # [ ] @ ! $ & ' ( ) * + , ; =
  • リテラルバイト値などの他の文字はパーセントエンコードされます。
  • パーセントエンコードされた表現は大文字に変換されます。
  • URLパスはドットセグメントの削除プロトコルに従って正規化されます。

Cloudflare正規化

CloudflareのURL正規化を使用する場合、受信リクエストのURLに対して以下の順序で追加の正規化技術が適用されます:

  1. バックスラッシュ(\)をスラッシュ(/)に正規化します。
  2. 連続するスラッシュをマージします(例えば、///に正規化されます)。
  3. 結果のURLに対してRFC 3986正規化を実行します。