跳转到内容
搜索文档

5 – 使用页面规则添加异常

最后更新 查看 MarkdownAgent 设置

配置 HTTPS 设置教程中,您配置了适用于所有传入 example.com 请求的区域设置。在本教程中,您将使用页面规则 (Page Rules)向这些设置添加异常。

具体而言,您将提高一个已知渲染成本高昂且无法缓存的 URL 的安全级别:https://www.example.com/expensive-db-call。此外,您将添加一个从以前用于托管此页面的 URL 的重定向。

1. 创建页面规则配置

创建一个新分支并追加配置。

git checkout -b step5-pagerule

页面规则允许您覆盖特定 URL 模式的区域设置。在您的 main.tf 中添加两条页面规则:

# 为昂贵的数据库操作提高安全性
resource "cloudflare_page_rule" "expensive_endpoint_security" {
  zone_id  = var.zone_id
  target   = "${var.domain}/expensive-db-call"
  priority = 1

  actions = {
    security_level = "under_attack"
  }
}

# 将旧 URL 重定向到新位置
resource "cloudflare_page_rule" "legacy_redirect" {
  zone_id  = var.zone_id
  target   = "${var.domain}/old-location.php"
  priority = 2

  actions = {
    forwarding_url = {
      url         = "https://www.${var.domain}/expensive-db-call"
      status_code = 301
    }
  }
}

第一条规则将数据库端点的安全性提高到“Under Attack(遭受攻击)”模式。第二条规则使用 301 永久重定向将旧 URL 重定向。

2. 预览并应用更改:

terraform plan
terraform apply

3. 验证更改:

测试重定向功能:

curl -I https://example.com/old-location.php

预期输出:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/expensive-db-call

测试提高的安全性(“Under Attack”模式返回质询页面):

curl -I https://example.com/expensive-db-call

预期输出:

HTTP/1.1 503 Service Temporarily Unavailable

503 响应表明“Under Attack”模式处于活动状态,并在允许访问之前向访问者提供质询页面,以防止 DDoS 攻击。

4. 提交并合并更改:

git add main.tf
git commit -m "Step 5 - Add two Page Rules"
git push

调用按预期工作。在第一种情况下,Cloudflare 全球网络响应 301,将浏览器重定向到新位置。在第二种情况下,Cloudflare 全球网络最初响应 503,这与“Under Attack”模式一致。

这篇文档对您有帮助吗?