Skip to content

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

カスタムドメインから画像を配信する

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

同じ 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> に書き換えます。

ルールを作成する手順は次のとおりです。

  1. Cloudflare ダッシュボードで、Rules Overview ページを開きます。

    Overview を開く ↗
  2. URL Rewrite Rules の横で、Create rule を選択します。

  3. If incoming requests matchWildcard pattern を選択し、次の Request URL を入力します(自分のドメインに置き換えてください)。

    https://example.com/images/*
  4. Then rewrite the path and/or query > Path で、次の値を入力します(自分のアカウントハッシュを使います)。

    • Target path: [/] images/*
    • Rewrite to: [/] cdn-cgi/imagedelivery/<ACCOUNT_HASH>/${1}
  5. 完了したら 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 機能がオンであることを前提とします。

ルールを作成する手順は次のとおりです。

  1. Cloudflare ダッシュボードで、Rules Overview ページを開きます。

    Overview を開く ↗
  2. URL Rewrite Rules の横で、Create rule を選択します。

  3. If incoming requests matchCustom filter expression を選択し、Edit expression を選択します。

  4. テキストフィールドに (http.request.uri.path matches "^/images/.*$") を入力します。

  5. PathRewrite to を選択します。

  6. 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 トークンでプライベート画像を配信する を参照してください。

役に立ちましたか?