目录
在此处查看我们的 Page Rule 视频教程:cloudflare.com/features-page-rules
概述
Page Rule 使您能够根据页面的 URL 进行各种操作,例如创建重定向、微调缓存行为或启用和禁用我们的各种服务。
Page Rule 将在给定的 URL 模式下生效,匹配格式如下:
<scheme>://<hostname><:port>/<path>
下面是使用每个组件的示例:
https://www.example.com:80/image.png
scheme和端口组件都是可选的。如果忽略scheme,则将涵盖 http:// 和 https:// 协议。如果未指定端口,则规则将匹配所有端口。您可以通过在规则模式中使用“*”符号来执行基本通配符匹配,从而使其匹配一系列相似的模式,而不仅仅是一个模式。
Page Rule 有两件重要事项需要注意:
- 只有一个 Page Rule 将对任何给定的请求生效
- Page Rule 的优先级按照从上到下的顺序排列
在一个 URL 匹配一个规则后,只有该规则会被应用 - 即,如果 Page Rule 已基于一个请求而被触发,那么后续也匹配该 URL 模式的任何规则将不起作用。通常,建议您将规则按从最具体到最不具体的顺序排列。
Page Rule 可以暂停,在这种情况下,它们将不采取任何操作,但仍可以在列表中查看和编辑。Save as Draft选项会创建最初暂停的 Page Rule。
转发(URL 重定向)
使用 HTTP 301/302 重定向将一个 URL 重定向到另一个 URL。之后可以使用 $X 语法引用通配符匹配的 URL 的任何部分的内容。X 表示模式中 glob 通配符索引:$1 将替换为第一个通配符匹配,$2 将替换为第二个通配符匹配,依此类推。
例如,假设您设置以下规则:
此处,对“www.example.com/stuff/things”的请求将重定向到“http://example.com/stuff/things”。
注意不要创建域指向自身作为目标的重定向。这可能会导致无限重定向错误,受影响的网址将无法解析。
重定向到 HTTPS
如果要重定向访问者使用 HTTPS,只需使用“Always Use HTTPS”设置:
自定义缓存
使用我们的任意cache levels,设置与 Page Rule 模式匹配的任何 URL 的缓存行为。Cache everything设置将缓存任何内容,即使不是我们认为的普通静态文件类型。Bypass设置将阻止该 URL 的缓存。
通过 Page Rule 指定缓存级别时,您可以选择设置edge cache TTL,这将控制我们在缓存中保留文件的时长。默认情况下,此设置为respect all existing headers,即使用标准 HTTP 缓存标头来控制缓存期限。您可以根据您的套餐直接设置其他缓存有效期。
浏览器缓存 TTL 控制客户端浏览器缓存的资源保持有效的时间。如果浏览器再次请求资源并且 TTL 尚未过期,则将收到 HTTP 304(未修改)响应。如果发送的 max-age 标头长于此 TTL,则该值优先。免费、Pro 和 Business 客户可以设置 30 分钟到 1 年的 TTL;Enterprise 客户可以选择低至 30 秒的其他选项,并可以选择尊重现有的 max-age 标头。
并非所有默认缓存行为都严格遵守 RFC。通过 Page Rule 设置 Origin Cache Control 使用一组较新的缓存规则,这些规则旨在更加紧密遵守 RFC,主要是关于重新验证方面 - 例如,max-age = 0 的默认行为是 根本不缓存,而设置 Origin Cache Control 缓存但总是重新验证。
以下示例将设置规则以缓存“/images”文件夹中的所有内容。在用户的浏览器中,缓存资源将在 5 分钟后过期。在 Cloudflare 的数据中心,缓存资源将在一天后过期:
所有计划套餐级别的选项
Always Online:
控制我们是否会尝试从 Always Online 缓存中传输内容。您可能希望对站点中不应该返回缓存数据的部分禁用此选项,如 API 或支付/购物车页面。
Disable Apps:
将关闭所有 Cloudflare 应用。
Mirage:
启用或禁用 Mirage。
Rocket Loader:
控制 Rocket Loader 以何种模式运行。
SSL:
控制使用哪种 SSL 模式。
Server Side Excludes:
启用或禁用服务器端排除。
Security Level:
用来控制客户端威胁评分必须达到多高的分数时才会遇到captcha质询页面,并且可用于设置网站的一部分,以便始终向访问者显示Under Attack mode质询,然后才能访问您的网站。
Email Obfuscation淆:
开启或关闭电子邮件混淆。
WAF:
开启或关闭 Web 应用程序防火墙规则。
Browser Integrity Check:
Challenge TTL:
控制允许用户在通过质询页面后访问您的站点的时间(具体取决于您的 IP 防火墙规则和安全级别)。
Always Use HTTPS:
通过创建 301 重定向,将任何 http:// URL 转换为 https:// URL。如果您想要强制将您站点的某些部分使用 HTTPS(使用证书来确保客户端和我们的节点之间的连接),通常会使用该选项。注意:如果您看到此选项不可用,那是因为您在Cloudflare节点中还没有有效的证书。
IP Geolocation Header:
包含访问者位置的国家/地区代码以及对您网站的所有请求。此信息将在 CF-IPCountry HTTP 标头中找到。
Disable Security:
禁用以下功能:
- Email Obfuscation
- Server Side Excludes
- WAF
- Rate Limiting
- Scrape Shield
如果一个规则设置为Disable Security,而另一个规则设置为启用 WAF,那么无论它们出现的顺序如何,WAF 规则都会优先应用。另外,Disable Security对 IP reputation的检查没有影响。要禁用这些功能,还应在规则中将“Security Level”设置为“Essentially Off”。
Disable Performance:
禁用以下功能:
- Minification
- Rocket Loader
- Mirage
- Polish
Business 和 Enterprise 计划套餐级别的选项
Bypass Cache Cookie(仅适用于 Business 和 Enterprise):
如果一个 Cookie 名称与正则表达式匹配,则 Cloudflare 将绕过“Cache Everything”规则并从源服务器中获取资源。
Enterprise 计划套餐级别选项
Cache On Cookie(仅限 Enterprise):
如果一个 Cookie 名称与正则表达式匹配,则 Cloudflare 将对该 URL 应用“cache everything”,并从缓存获取资源。
Host Header Override(仅适用于 Enterprise):
任何与 URI 匹配的请求都会将Host Header Override到您在“Host Header Override”字段中放置的那个标头。
Resolve Override(仅适用于 Enterprise):
将请求的源站地址更改为您所设置的URL。用户将在浏览器地址栏中看到域名,但内容将通过“解析”字段中的您所设置的URL 提供。
Custom Cache Key(仅限 Enterprise):
控制在决定缓存哪些资源时具体包括哪些变量,即允许用户基于除了 URL 之外的其他内容来确定缓存内容。请注意,用户无法直接控制这些内容。需要向 Cloudflare 的支持团队 请求添加/更改自定义缓存键。
Query String Sort(仅适用于 Enterprise):
重新排序任何查询字符串,以便它们具有相同的格式,以实现更快更高的缓存命中率。
Origin Error Page Pass Through(仅适用于 Enterprise):
禁用由于源服务器发送的问题而触发的 Cloudflare 错误页面,而是显示在源服务器中设置的错误页面。
True Client IP Header(仅适用于 Enterprise):
默认情况下,Cloudflare 会发回包含 Cloudflare IP 地址的数据包。如果启用了 True-Client-IP,Cloudflare 将在发送给源服务器的请求(带有最终用户 IP 地址)中添加一个 True-Client-IP 标头。
Max Upload Size(仅限 Enterprise):
Cloudflare 会限制访问者每次请求上传的最大数据量。此限制由计划套餐级别决定:
- Free: 100MB
- Pro: 100MB
- Business: 200MB
- Enterprise: 500MB(默认值)
Response Buffering(仅限 Enterprise):
Cloudflare 将等待,直至获取整个文件,然后再将其转发给最终用户。默认情况下,在我们收到数据包时,Cloudflare 将数据包发送到客户端。