テック技報最新号へ →
インフラ

Cloudflare Rules: trim() でヘッダーの前後の空白を落としてから比べる

ルール式に trim()・trim_start()・trim_end() が追加された。ヘッダー値に紛れた空白で eq 比較が外れる問題を、式の中だけで直せる。

@CFchangelog · 投稿 2026-10-14
#infra#cloudflare#rules#waf

どんなときに使う?

  • x-label: approved のように、クライアントやプロキシが付けた余分な空白でルールが一致しないとき
  • 値の先頭や末尾の決まった文字(記号など)を取り除いてから比較したいとき

やり方

trim(http.request.headers["x-label"][0]) eq "approved"
  • trim(): 両端を削る
  • trim_start(): 先頭だけ削る
  • trim_end(): 末尾だけ削る
  • 既定で削るのは ASCII の空白。第 2 引数に定数文字列を渡すと、削るバイトの集合を指定できる
  • 入力が nil(ヘッダーがない)なら nil を返す

すべての HTTP 系プロダクト・全プランで使える(Changelog の日付は 2026-10-14)。

注意点

  • 削るのは「前後」だけ。値の途中の空白は残る
  • 「バイト」単位なので、全角スペースなどのマルチバイト文字を削りたいときは指定のしかたに注意する
  • nil が返るケースを考えて、ヘッダーがないリクエストの扱いを別条件で書いておく

出典

X の元の投稿を開く