同じ Cloudflare アカウント配下のすべてのカスタムドメインから、画像を配信できます。カスタムドメイン経由で配信するには、画像 URL を次の形式にします。
https://example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/<IMAGE_ID>/<VARIANT_NAME>カスタムドメインを使った例です。
https://example.com/cdn-cgi/imagedelivery/ZWd9g1K7eljCn_KDTu_MWA/083eb7b2-5392-4565-b69e-aff66acddd00/publicこの例では、<ACCOUNT_HASH>、<IMAGE_ID>、<VARIANT_NAME> は同じです。ホスト名とプレフィックスパスだけが異なります。
example.com: Cloudflare Images と同じアカウント配下で、Cloudflare がプロキシしているドメインです。/cdn-cgi/imagedelivery:cdn-cgi画像プロキシを起動するパスです。ZWd9g1K7eljCn_KDTu_MWA: Images のアカウントハッシュです。Cloudflare Images のダッシュボードで確認できます。083eb7b2-5392-4565-b69e-aff66acddd00: 画像 ID です。public: バリアント名です。
デフォルトでは、画像は /cdn-cgi/imagedelivery/ パスから配信されます。Transform Rules で URL を書き換え、カスタムパスから画像を配信できます。
Free プランと Pro プランでは、正規表現を使わない文字列一致ルール(ワイルドカード操作を含む)を使えます。
この例では、example.com/images へのリクエストを example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH> に書き換えます。
ルールを作成する手順は次のとおりです。
-
Cloudflare ダッシュボードで、Rules Overview ページを開きます。
Overview を開く ↗ -
URL Rewrite Rules の横で、Create rule を選択します。
-
If incoming requests match で Wildcard pattern を選択し、次の Request URL を入力します(自分のドメインに置き換えてください)。
https://example.com/images/* -
Then rewrite the path and/or query > Path で、次の値を入力します(自分のアカウントハッシュを使います)。
- Target path: [
/]images/* - Rewrite to: [
/]cdn-cgi/imagedelivery/<ACCOUNT_HASH>/${1}
- Target path: [
-
完了したら Deploy を選択します。
この例では、example.com/images/some-image-id/w100,h300 へのリクエストを example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/some-image-id/width=100,height=300 に書き換えます。Flexible variants 機能がオンであることを前提とします。
ルールを作成する手順は次のとおりです。
-
Cloudflare ダッシュボードで、Rules Overview ページを開きます。
Overview を開く ↗ -
URL Rewrite Rules の横で、Create rule を選択します。
-
If incoming requests match で Custom filter expression を選択し、Edit expression を選択します。
-
テキストフィールドに
(http.request.uri.path matches "^/images/.*$")を入力します。 -
Path で Rewrite to を選択します。
-
Dynamic を選択し、テキストフィールドに次を入力します。
regex_replace(
http.request.uri.path,
"^/images/(.*)\\?w([0-9]+)&h([0-9]+)$",
"/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/${1}/width=${2},height=${3}"
)カスタムドメインを使う場合、/cdn-cgi/imagedelivery/ パスへのリクエストに直接作用する WAF ルールは設定できません。WAF ルールが必要な場合は、Cloudflare Worker で画像にアクセスし、自分のドメインの Route でその Worker を実行します。Worker の例は、署名付き URL トークンでプライベート画像を配信する を参照してください。