面向 AI 训练的重定向 (Redirects for AI Training) 将您现有的 <link rel="canonical"> 标签作为 301 重定向强制应用于已验证的 AI 训练爬虫。当属于 AI 爬虫类别 (AI Crawler category) 的已验证 Bot 请求一个规范化标签指向不同的同源 URL 的页面时,Cloudflare 将向该规范化 URL 返回 301 Moved Permanently。所有其他访问者 —— 浏览器、搜索引擎、AI 助手 (AI Assistants) —— 将原封不动地接收原始页面。
若要了解为什么此功能非常有用,请参阅公告博客文章 ↗。
面向 AI 训练的重定向可在 AI Crawl Control(AI 爬网控制)> **Quick Actions(快速操作)**中作为一个开关使用,与 Markdown for Agents(面向 Agent 的 Markdown)和 托管的 robots.txt 并列。
要在仪表板中为您的区域启用面向 AI 训练的重定向:
- 登录 Cloudflare 仪表板 ↗ 并选择您的账户(您需要 Pro 或 Business 计划)。
- 选择您要配置的区域 (zone)。
- 访问 AI Crawl Control ↗ 部分。
- 启用 Redirects for AI Training(面向 AI 训练的重定向)。
要为特定的子域或路径而不是整个区域启用面向 AI 训练的重定向,请创建一个配置规则 (configuration rule):
- 登录 Cloudflare 仪表板 ↗ 并选择您的账户。
- 选择您要配置的区域。
- 前往 Rules(规则)> Overview(概述),然后选择 Create rule(创建规则)> Configuration Rules(配置规则)。
- 在 **When incoming requests match(当传入请求匹配时)**下,构建一个匹配您的子域(例如,
http.host eq "docs.example.com")或路径的表达式。 - 在 **Then the settings are(则设置为)**下,选择 Add setting(添加设置)> **Redirects for AI Training(面向 AI 训练的重定向)**并将其设置为 On(开)。
- 选择 Deploy(部署)。
要使用 API 为您的区域启用面向 AI 训练的重定向,请向 Cloudflare API 发送一个 PATCH 请求至 /client/v4/zones/{zone_tag}/settings/redirects_for_ai_training,负载为 {"value": "on"}。
您需要创建一个启用了“区域设置 (Zone Settings)”编辑权限的 API 令牌。
示例:
curl -X PATCH 'https://api.cloudflare.com/client/v4/zones/{zone_tag}/settings/redirects_for_ai_training' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer {api_token}" --data-raw '{"value": "on"}'要为特定的子域或路径而不是整个区域启用面向 AI 训练的重定向,请创建一个配置规则 (configuration rule):
curl --request PUT \
--url "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_config_settings/entrypoint" \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"rules": [{
"expression": "http.host eq \"docs.example.com\"",
"action": "set_config",
"action_parameters": {
"redirects_for_ai_training": true
},
"description": "Enable Redirects for AI Training for docs subdomain"
}]
}'您也可以使用基于路径的表达式,例如 starts_with(http.request.uri.path, "/docs/")。有关构建表达式的更多信息,请参阅规则语言。
如果您正在使用 Cloudflare for SaaS 并希望为您的自定义主机名启用面向 AI 训练的重定向,您有两种选择:
要在您的 SaaS 区域上为所有自定义主机名启用面向 AI 训练的重定向:
- 登录 Cloudflare 仪表板 ↗ 并选择您的账户。
- 选择您的 SaaS 区域。
- 寻找 Quick Actions(快速操作)。
- 切换 **Redirects for AI Training(面向 AI 训练的重定向)**按钮以启用。
为特定自定义主机名启用面向 AI 训练的重定向需要高级订阅,该订阅需要具有访问自定义元数据的权限。
当通过 API 创建或更新自定义主机名时,将 redirects_for_ai_training 添加到 custom_metadata 对象中:
curl --request PATCH \
--url "https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames/{custom_hostname_id}" \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"custom_metadata": {
"redirects_for_ai_training": "enabled"
}
}'在您的 SaaS 区域上创建一个匹配具有该元数据的自定义主机名并启用该功能的配置规则:
curl --request PUT \
--url "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_config_settings/entrypoint" \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"rules": [{
"expression": "lookup_json_string(cf.hostname.metadata, \"redirects_for_ai_training\") eq \"enabled\"",
"action": "set_config",
"action_parameters": {
"redirects_for_ai_training": true
},
"description": "Enable Redirects for AI Training for opted-in custom hostnames"
}]
}'这将在设置了 redirects_for_ai_training 自定义元数据标签的自定义主机名上启用该功能。
Cloudflare 检查发送给已验证 AI 训练爬虫的源站 HTML 响应,并且:
- 对源站响应的
<head>进行流式解析,以提取<link rel="canonical" href="..."> - 根据请求 URL 解析相对规范化 URL
- 验证规范化 URL 是否为同源且与当前 URL 不同
- 向该规范化 URL 返回
301重定向
如果未找到规范化标签、规范化 URL 是跨域的,或者页面是自规范的,则源站响应原封不动地通过。
该功能会解析源站响应中 <head> 部分的 <link rel="canonical"> 标签:
<!DOCTYPE html>
<html>
<head>
<link rel="canonical" href="https://example.com/current-version">
</head>
<body>
<!-- Page content -->
</body>
</html>支持绝对和相对 URL:
<!-- 绝对 URL -->
<link rel="canonical" href="https://example.com/page">
<!-- 相对 URL(根据请求 URL 解析) -->
<link rel="canonical" href="/current-page">面向 AI 训练的重定向运行在与 单次重定向 (Single Redirects) 和 批量重定向 (Bulk Redirects) 不同的层级。那些重定向规则在与源站建立联系之前执行。面向 AI 训练的重定向在源站响应后执行,因为它需要从源站 HTML 中读取规范化标签。
如果单次重定向或批量重定向首先匹配,则请求会在面向 AI 训练的重定向有机会对其进行评估之前被重定向。
在 Pro、Business 和 Enterprise 计划中免费提供。
- 仅评估来自源站的 HTML 响应(
content-type: text/html)。其他内容类型将原封不动地通过。 - 规范化标签必须出现在未压缩 HTML 响应正文的前 256 KB 内。
- 仅同源规范化 URL 会触发重定向。跨域规范化 URL 将被忽略。
- 仅重定向带有 AI 爬虫类别 (AI Crawler category) 的 已验证 Bot。AI 助手和 AI 搜索 Bot 不受影响。
- 自规范页面(规范化 URL 与请求 URL 匹配的页面)不会被重定向。
- 尽力而为的循环检测使用
Referer标头。如果爬虫刚刚从规范化 URL 被重定向回当前页面,则将提供源站 HTML,而不是再次重定向。这可以处理常见的双页面规范化配置错误(页面 A 的规范化指向页面 B,页面 B 的规范化指向页面 A)。
当发出重定向时,Cloudflare 会通过 redirects_for_ai_training_target 字段在您的 HTTP 请求日志中记录规范的目标 URL。您可以使用 GraphQL Analytics API 或 Logpush 来查询此数据。
- 管理 AI 爬虫 - 为每个爬虫设置允许或阻止规则
- 分析 AI 流量 - 按爬虫、运营商和内容类型查看请求指标
- 面向 Agent 的 Markdown (Markdown for Agents) - 通过内容协商将 HTML 作为 markdown 提供
- 内容信号政策 (Content Signals Policy) ↗ - 在
robots.txt中指明访问后的内容使用偏好 - 指令 (Directives) - 监控
robots.txt合规性并检查 Agent 就绪状态 - 单次重定向 (Single Redirects) - 在源站前执行的基于规则的 URL 重定向
- 已验证 Bot - Bot 类别包括 AI 爬虫、AI 助手和 AI 搜索