コンテンツにスキップ

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

画像配信は、同じ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: バリアント名。

カスタムパス

デフォルトでは、Imagesは/cdn-cgi/imagedelivery/パスから配信されます。Transform Rulesを使用してURLを書き換え、カスタムパスから画像を配信することができます。

基本バージョン

無料およびProプランは、正規表現を必要としない文字列マッチングルールのみをサポートしています。

この例では、example.com/imagesからexample.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>へのリクエストを書き換えることができます。

ルールを作成するには:

  1. Cloudflareダッシュボードにログインし、アカウントとウェブサイトを選択します。
  2. Rules > Transform Rulesを選択します。
  3. Create ruleを選択します。
  4. **When incoming requests match…**の下で、Edit expressionを選択します。
  5. テキストフィールドにstarts_with(http.request.uri.path, "/images")と入力します。
  6. Pathの下で、Rewrite toを選択します。
  7. Dynamicを選択し、テキストフィールドに以下を入力します。
concat(
"/cdn-cgi/imagedelivery/<ACCOUNT_HASH>",
substring(http.request.uri.path, 7)
)
  1. 完了したら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ダッシュボードにログインし、アカウントとウェブサイトを選択します。
  2. Rules > Transform Rulesを選択します。
  3. Create ruleを選択します。
  4. **When incoming requests match…**の下で、Edit expressionを選択します。
  5. テキストフィールドに(http.request.uri.path matches "^/images/.*$")と入力します。
  6. Pathの下で、Rewrite toを選択します。
  7. 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を使用して画像にアクセスし、ドメインを使用してワーカーを実行するためのルートを作成できます。ワーカーの例については、署名付きURLトークンを使用してプライベート画像を配信するを参照してください。