Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

5 – Page Rules で例外を追加する

最終更新 Markdown で表示Agent セットアップ

HTTPS 設定を構成する チュートリアルでは、example.com へのすべての受信リクエストに適用するゾーン設定を構成しました。このチュートリアルでは、Page Rules を使って、これらの設定に例外を追加します。

具体的には、描画コストが高くキャッシュできない URL https://www.example.com/expensive-db-call のセキュリティレベルを上げます。あわせて、以前このページをホストしていた URL からのリダイレクトも追加します。

1. Page Rules の設定を作成する

新しいブランチを作成し、設定を追記します。

git checkout -b step5-pagerule

Page Rules は、特定の URL パターンに対してゾーン設定を上書きできます。main.tf に 2 つの Page Rules を追加します。

# Increase security for expensive database operations
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"
  }
}

# Redirect old URLs to new location
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
    }
  }
}

1 つ目のルールは、データベースエンドポイントのセキュリティを Under Attack モードに上げます。2 つ目のルールは、古い URL を 301 の恒久リダイレクトで転送します。

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

呼び出しは想定どおりに動作します。1 つ目では、Cloudflare のグローバルネットワークが 301 を返し、ブラウザーを新しい場所へリダイレクトします。2 つ目では、Cloudflare のグローバルネットワークがまず 503 を返します。これは Under Attack モードと一致します。

役に立ちましたか?