同一 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>。
要创建规则:
-
在 Cloudflare 仪表板中,转到 Rules Overview(规则概览) 页面。
Go to Overview ↗ -
在 URL Rewrite Rules(URL 重写规则) 旁边,选择 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(规则概览) 页面。
Go to Overview ↗ -
在 URL Rewrite Rules(URL 重写规则) 旁边,选择 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 访问图像,并使用指向 Worker 的 Route 执行 worker。有关示例 worker,请参阅使用签名 URL 令牌提供私有图像。