Cloudflare Docs
Terraform
Visit Terraform on GitHub
Set theme to dark (⇧+D)

Configure Transform Rules

This page provides examples of creating Transform Rules in a zone using Terraform. The examples cover the following scenarios:

For more information on Transform Rules, refer to Transform Rules.

Create a URL Rewrite Rule

The following example creates a URL Rewrite Rule that rewrites requests for example.com/old-folder to example.com/new-folder:

resource "cloudflare_ruleset" "transform_url_rewrite" {
zone_id = "<ZONE_ID>"
name = "Transform Rule performing a static URL rewrite"
description = ""
kind = "zone"
phase = "http_request_transform"
rules {
action = "rewrite"
action_parameters {
uri {
path {
value = "/new-folder"
}
}
}
expression = "(http.host eq \"example.com\" and http.request.uri.path eq \"/old-folder\")"
description = "Example URL Rewrite Rule"
enabled = true
}
}

For more information on rewriting URLs, refer to URL Rewrite Rules.

Create an HTTP Request Header Modification Rule

The following configuration example performs the following adjustments to HTTP request headers:

  • Adds a my-header-1 header to the request with a static value.
  • Adds a my-header-2 header to the request with a dynamic value defined by an expression.
  • Deletes the existing-header header from the request, if it exists.
    resource "cloudflare_ruleset" "transform_modify_request_headers" {
    zone_id = "<ZONE_ID>"
    name = "Transform Rule performing HTTP request header modifications"
    description = ""
    kind = "zone"
    phase = "http_request_late_transform"
    rules {
    action = "rewrite"
    action_parameters {
    headers {
    name = "my-header-1"
    operation = "set"
    value = "Fixed value"
    }
    headers {
    name = "my-header-2"
    operation = "set"
    expression = "cf.zone.name"
    }
    headers {
    name = "existing-header"
    operation = "remove"
    }
    }
    expression = "true"
    description = "Example HTTP Request Header Modification Rule"
    enabled = true
    }
    }

For more information on modifying request headers, refer to HTTP Request Header Modification Rules.

Create an HTTP Response Header Modification Rule

The following configuration example performs the following adjustments to HTTP response headers:

  • Adds a my-header-1 header to the response with a static value.
  • Adds a my-header-2 header to the response with a dynamic value defined by an expression.
  • Deletes the existing-header header from the response, if it exists.
    resource "cloudflare_ruleset" "transform_modify_response_headers" {
    zone_id = "<ZONE_ID>"
    name = "Transform Rule performing HTTP response header modifications"
    description = ""
    kind = "zone"
    phase = "http_response_headers_transform"
    rules {
    action = "rewrite"
    action_parameters {
    headers {
    name = "my-header-1"
    operation = "set"
    value = "Fixed value"
    }
    headers {
    name = "my-header-2"
    operation = "set"
    expression = "cf.zone.name"
    }
    headers {
    name = "existing-header"
    operation = "remove"
    }
    }
    expression = "true"
    description = "Example HTTP Response Header Modification Rule"
    enabled = true
    }
    }

For more information on modifying response headers, refer to HTTP Response Header Modification Rules.