Cloudflare Redirect Rules

Redirect Rules 2024

Wildcard pattern → 条件を組み合わせたい場合は Custom filter expression

例 Redirect from HTTP to HTTPS ( /.well-known/ は除外)
Custom filter expression
(http.request.full_uri wildcard "http://*" and not starts_with(http.request.uri.path, "/.well-known/"))

Dynamic wildcard_replace(http.request.full_uri, "http://*", "https://${1}") 301

ドメイン全体で例外なくHTTPS化する場合はSSL/TLSの設定でもできる

SSL/TLS > Edge certificates > Additional options > Always Use HTTPS

https://developers.cloudflare.com/ssl/edge-certificates/additional-options/always-use-https/

完全に HTTPS 化するには
「Always Use HTTPS」の機能を使えば、クライアントーCloudflare間の通信に対して HTTP を HTTPS にリダイレクトできます。
ただし、SSL mode = Off と「Always Use HTTPS」は併用できません。
Cloudflare SSL mode による HTTPS 化を確認する #cloudflare - Qiita

例 Redirect from Root to WWW
Wildcard pattern
Request URL https://example.com/*

Target URL https://www.example.com/${1} 301

上記の2つの例は Preserve query string をチェックしなくてもクエリストリングは維持される
https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/reference/parameters/#preserve-query-string

例 Redirect to www.example.net
Custom filter expression
(http.host eq "example.com") or (http.host wildcard "www.example.com")

Dynamic concat("https://www.example.net", http.request.uri.path) 301
Preserve query string