新用户新用户即享 DNS 与 CDN 免费套餐。立即注册

页面规则

按 URL 条件覆盖缓存、限流、响应头、回源 SSL 和重定向等行为。

6 分钟阅读 更新于 2026年10月6日

页面规则用于对符合特定条件的 URL 应用不同的处理方式,例如对静态资源延长缓存时间、对后台路径关闭缓存、把旧路径重定向到新地址。

路径:CDN管理 → 域名管理 → 点击域名 → 页面规则(控制台地址 /cdn/domains/<域名>/rules)。

Note

页面规则的部分动作仍在逐步上线。下文只列出已在边缘生效的动作;控制台中还能看到其他选项,但这些选项目前保存后不会生效。

规则的组成

每条页面规则包含:

字段说明
规则名称便于识别,如「静态资源缓存」
优先级1–999,默认 100
启用停用的规则会保留,但不会生效
匹配条件一个或多个条件,可选「全部满足(AND)」或「任一满足(OR)」
执行动作请求命中后执行的一个或多个动作

匹配 URL

页面规则使用与防火墙相同的条件引擎。描述 URL 时常用的字段和运算符如下:

字段示例
Path / URI Path开头是 /static/;正则匹配 ^/blog/\d+
File Extension在列表中 jpg、png、css、js
Host等于 img.example.com(一个域名下有多个主机名时很有用)
Query String参数名填 utm_source,运算符选 存在
Header / Cookie填写名称后匹配其值
Is HTTPS、HTTP Method、Client IP、Country Code、ASN、User Agent、Referer按请求属性细分

运算符包括:等于、不等于、包含、不包含、开头是、结尾是、正则匹配、在列表中、不在列表中、大于 / 小于(含等于)、存在、不存在。

Tip

路径匹配区分大小写。用前缀(开头是)匹配一个目录,通常比正则更直观,也更不容易出错。

已生效的动作

动作面板生效的设置说明
缓存缓存模式「禁用」;缓存时间(秒)「禁用」时命中的请求不走边缘缓存。设置了缓存时间时,覆盖边缘对可缓存响应的缓存 TTL。源站返回 Set-Cookie 或 no-store 等不可缓存的响应时,仍然不会缓存
限流请求数量、时间窗口、限流键(IP 地址 / 国家 / URI 路径)超限的请求返回 429。需要按请求头或 Cookie 限流时,请使用 防火墙规则
WAF关闭开关对命中的请求跳过 WAF 检查,适用于可信的回调地址。规则集选择在此处不生效
自定义头名称 / 值为响应添加或覆盖 HTTP 响应头
SSL/TLS回源SSL模式;强制HTTPS(客户端)覆盖这些 URL 回源时使用的 SSL 模式(关闭 / 灵活 / 完全 / 严格);开启强制 HTTPS 后,HTTP 请求会 301 跳转到同一地址的 HTTPS 版本
重定向目标URL、状态码(301 / 302 / 307 / 308)直接返回跳转到固定的目标 URL,不会回源

以下设置目前不生效,请改到域名级页面配置:

  • 缓存面板中的缓存时间模式、Query String 处理、缓存主机模式、按设备 / 国家 / 语言区分、返回过期缓存:请在 缓存 页面配置。
  • 浏览器缓存 面板:仍在上线中,请在 缓存 页面配置浏览器缓存。
  • 优化 面板(Gzip / Brotli / 精简):请在 优化 页面配置。

创建规则

  1. 在 页面规则 页面点击 添加规则。
  2. 填写规则名称,按需调整优先级,确认「启用」已打开。
  3. 在 匹配条件 中添加条件,并选择「全部满足」或「任一满足」。
  4. 在 执行动作 中,点击所需动作面板右侧的 启用,然后填写参数。不需要的面板点击 移除。
  5. 点击 确定 保存。几秒到几十秒后,规则会在边缘生效。

至少需要一个条件和一个动作才能保存。

示例:静态资源缓存 7 天

  • 条件:File Extension 在列表中 jpg、png、css、js
  • 动作:缓存,缓存模式「启用」,缓存时间 604800

示例:后台不缓存

  • 条件:Path 开头是 /admin
  • 动作:缓存,缓存模式「禁用」

多条规则同时命中

一个请求可以同时命中多条页面规则,所有命中规则的动作会一起生效。重定向和强制 HTTPS 会立即结束处理,之后的规则不再执行。

Warning

不要让多条规则对同一批 URL 设置相互冲突的值(例如两个不同的缓存时间)。建议让条件互不重叠,或把它们合并为一条规则。

规则配额

页面规则的数量可能受套餐限制。有上限时,页面顶部会显示「规则配额:已用/上限」;达到上限后需要删除旧规则或升级套餐。

API

页面规则的接口位于 /api/user/cdn/rules:

bash
curl -X POST "https://api.yeap.cloud/api/user/cdn/rules/create" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "domain_id": 123,
    "name": "Static assets 7d",
    "priority": 100,
    "enabled": true,
    "settings": {
      "matcher": {"op": "and", "conditions": [
        {"collection": "EXTENSION", "op": "in", "var": ["jpg", "png", "css", "js"]}
      ]},
      "action": {"cache": {"enabled": "on", "ttl": 604800}}
    }
  }'

其他接口:GET /api/user/cdn/rules?domain_id=123(列表)、POST /api/user/cdn/rules/update(带 id)、DELETE /api/user/cdn/rules/delete?id=<id>。

相关文档

本页内容是否有帮助?