跳转到内容
搜索文档

从自定义域名提供图像

最后更新 查看 MarkdownAgent 设置

同一 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 并从自定义路径提供图像。

基础版本

Free 和 Pro 计划支持字符串匹配规则(包括通配符操作),无需正则表达式。

此示例让您将 example.com/images 的请求重写为 example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>

要创建规则:

  1. 在 Cloudflare 仪表板中,转到 Rules Overview(规则概览) 页面。

    Go to Overview ↗
  2. URL Rewrite Rules(URL 重写规则) 旁边,选择 Create rule(创建规则)

  3. If incoming requests match(如果传入请求匹配) 下,选择 Wildcard 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(规则概览) 页面。

    Go to Overview ↗
  2. URL Rewrite Rules(URL 重写规则) 旁边,选择 Create rule(创建规则)

  3. If incoming requests match(如果传入请求匹配) 下,选择 Custom filter expression(自定义筛选表达式),然后选择 Edit expression(编辑表达式)

  4. 在文本字段中输入 (http.request.uri.path matches "^/images/.*$")

  5. Path(路径) 下,选择 Rewrite 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 访问图像,并使用指向 Worker 的 Route 执行 worker。有关示例 worker,请参阅使用签名 URL 令牌提供私有图像

这篇文档对您有帮助吗?