页面规则
页面规则(Page Rules)是 Cloudflare 的核心功能之一,允许你针对特定 URL 设置自定义行为,如重定向、缓存控制、安全设置等。
页面规则基础
什么是页面规则?
页面规则允许你为匹配特定 URL 模式的请求设置自定义行为。每条规则包含:
- URL 匹配模式
- 一个或多个设置项
规则限制
| 计划 | 页面规则数量 |
|---|---|
| Free | 3 条 |
| Pro | 20 条 |
| Business | 100 条 |
| Enterprise | 不限 |
注意:Free 计划只有 3 条规则,需要合理规划使用。
URL 匹配模式
基本语法
| 模式 | 说明 | 示例 |
|---|---|---|
* | 匹配任意字符 | example.com/* |
* | 匹配任意路径段 | example.com/*/page |
| 精确匹配 | 不含通配符 | example.com/blog |
匹配示例
匹配所有请求:
example.com/*
匹配特定路径:
example.com/blog/*
匹配特定文件类型:
example.com/*.jpg
匹配带参数的 URL:
example.com/search?q=*
匹配多个子域名:
*.example.com/*
匹配优先级
规则按从上到下的顺序匹配,第一条匹配的规则生效。你可以在控制台拖动规则调整顺序。
可用设置项
转发 URL
将匹配的 URL 重定向到另一个地址:
URL 匹配: example.com/old-page
设置: Forwarding URL (301 - Permanent Redirect)
目标 URL: https://example.com/new-page
重定向类型:
- 301:永久重定向,SEO 友好
- 302:临时重定向
缓存级别
控制缓存行为:
| 级别 | 说明 |
|---|---|
| Cache Everything | 缓存所有内容 |
| Bypass | 绕过缓存 |
| Standard | 标准缓存 |
| Aggressive | 激进缓存 |
示例:缓存 API 响应:
URL 匹配: example.com/api/data
设置: Cache Level: Cache Everything
Edge Cache TTL: 1 hour
边缘缓存 TTL
设置 Cloudflare 边缘节点的缓存时间:
URL 匹配: example.com/static/*
设置: Edge Cache TTL: 1 month
浏览器缓存 TTL
设置浏览器的缓存时间:
URL 匹配: example.com/assets/*
设置: Browser Cache TTL: 1 year
SSL 模式
为特定 URL 设置 SSL 模式:
URL 匹配: example.com/api/*
设置: SSL: Full (Strict)
安全级别
调整安全级别:
URL 匹配: example.com/admin/*
设置: Security Level: High
浏览器完整性检查
检查浏览器是否合法:
URL 匹配: example.com/*
设置: Browser Integrity Check: On
开发模式
临时禁用缓存:
URL 匹配: example.com/preview/*
设置: Development Mode: On
禁用性能功能
禁用特定性能优化:
URL 匹配: example.com/api/*
设置:
- Auto Minify: Off
- Rocket Loader: Off
- Mirage: Off
常用规则示例
示例一:域名重定向
将 www 重定向到非 www:
URL 匹配: www.example.com/*
设置: Forwarding URL (301)
目标 URL: https://example.com/$1
注意:$1 代表第一个通配符捕获的内容。
示例二:强制 HTTPS
将 HTTP 重定向到 HTTPS:
URL 匹配: example.com/*
设置: Always Use HTTPS: On
更简单的方法:在 SSL/TLS 设置中开启 "Always Use HTTPS"。
示例三:缓存静态资源
URL 匹配: example.com/static/*
设置:
- Cache Level: Cache Everything
- Edge Cache TTL: 1 month
- Browser Cache TTL: 1 year
示例四:绕过管理后台缓存
URL 匹配: example.com/admin/*
设置:
- Cache Level: Bypass
- Security Level: High
示例五:保护敏感页面
URL 匹配: example.com/login
设置:
- Security Level: High
- Browser Integrity Check: On
- Cache Level: Bypass
示例六:禁用 API 的性能优化
URL 匹配: example.com/api/*
设置:
- Auto Minify: Off
- Rocket Loader: Off
- Cache Level: Bypass
配置重定向规则
简单重定向
将旧页面重定向到新页面:
URL 匹配: example.com/old-blog/*
设置: Forwarding URL (301)
目标 URL: https://example.com/blog/$1
域名迁移
将整个域名重定向到新域名:
URL 匹配: old-domain.com/*
设置: Forwarding URL (301)
目标 URL: https://new-domain.com/$1
HTTPS 重定向
URL 匹配: http://example.com/*
设置: Forwarding URL (301)
目标 URL: https://example.com/$1
注意:如果开启了 "Always Use HTTPS",这个规则可能不需要。
高级用法
使用多个设置
一条规则可以包含多个设置:
URL 匹配: example.com/app/*
设置:
- Cache Level: Cache Everything
- Edge Cache TTL: 1 hour
- Browser Cache TTL: 4 hours
- Security Level: Medium
- SSL: Full (Strict)
规则优先级
规则按顺序匹配,建议:
- 将更具体的规则放在前面
- 将通用规则放在后面
示例:
1. example.com/admin/* (具体规则)
2. example.com/api/* (具体规则)
3. example.com/* (通用规则)
与其他规则配合
页面规则可以与以下功能配合:
- Cache Rules
- Redirect Rules
- WAF 规则
- Workers
配置步骤
创建页面规则
- 进入 "Rules" → "Page Rules"
- 点击 "Create Page Rule"
- 输入 URL 匹配模式
- 添加设置项
- 点击 "Save and Deploy"
编辑规则
- 点击规则右侧的 "Edit"
- 修改设置
- 保存
删除规则
- 点击规则右侧的 "Delete"
- 确认删除
调整规则顺序
在规则列表中,拖动规则到合适的位置。
替代方案
Redirect Rules
对于简单的重定向,可以使用 Redirect Rules:
Rules → Redirect Rules
Redirect Rules 更灵活,支持更多条件,且不占用 Page Rules 配额。
Cache Rules
对于缓存配置,可以使用 Cache Rules:
Caching → Cache Rules
Cache Rules 提供更精细的缓存控制,推荐用于缓存配置。
Configuration Rules
对于通用配置,可以使用 Configuration Rules:
Rules → Configuration Rules
Configuration Rules 可以设置更多选项,且不占用 Page Rules 配额。
常见问题
规则不生效怎么办?
- 检查 URL 匹配模式是否正确
- 检查规则顺序
- 清除缓存后测试
- 检查是否有其他规则冲突
通配符如何使用?
* 匹配任意字符,包括路径分隔符 /。
示例:
example.com/*匹配example.com/a和example.com/a/b/cexample.com/*/page匹配example.com/blog/page和example.com/news/page
如何捕获通配符内容?
在目标 URL 中使用 $1、$2 等引用捕获的内容:
URL 匹配: example.com/blog/*/page/*
目标 URL: https://example.com/posts/$1/$2
$1 是第一个 * 匹配的内容,$2 是第二个 * 匹配的内容。
参考链接
下一步
完成页面规则配置后,接下来学习 Workers,了解如何在边缘运行无服务器代码。