Cloudflare Docs
Rules
Rules
Edit this page on GitHub
Set theme to dark (⇧+D)

Compression rules examples

The following examples cover common patterns for configuring compression rules.

​​ Do not apply compression to AVIF images

The following example rule will disable compression for AVIF images, based on either the content type or the file extension specified in the request.

When incoming requests match

  • Media Type equals image/avif OR
  • File extension equals avif

Then

  • Compression options > Disable compression
Example API request

The following example sets the rules of an existing entry point ruleset (with ID {ruleset_id}) for the http_response_compression phase to a single compression rule, using the Update a zone ruleset operation:

curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"expression": "http.response.content_type.media_type eq \"image/avif\" or http.request.uri.path.extension eq \"avif\"",
"action": "compress_response",
"action_parameters": {
"algorithms": [
{ "name": "none" }
]
}
}
]
}'

​​ Use GZIP compression for CSV files or other algorithm if not available

The following example rule will configure GZIP compression as the preferred compression method for CSV files. If the visitor does not support this algorithm, Cloudflare will try to compress the response using a different algorithm supported by the visitor.

When incoming requests match

  • File extension equals csv

Then

  • Compression options > Custom > Gzip, Auto
Example API request

The following example sets the rules of an existing entry point ruleset (with ID {ruleset_id}) for the http_response_compression phase to a single compression rule, using the Update a zone ruleset operation:

curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"expression": "http.request.uri.path.extension eq \"csv\"",
"action": "compress_response",
"action_parameters": {
"algorithms": [
{ "name": "gzip" },
{ "name": "auto" }
]
}
}
]
}'

​​ Use only Brotli compression for a specific URI path

The following example rule will configure only Brotli compression for a specific URI path.

When incoming requests match

  • URI Path equals /download/assets.tar

Then

  • Compression options > Custom > Brotli

Since the rule configuration does not include Auto at the end of the custom algorithms list, the response will be uncompressed if the web visitor does not support Brotli.

Example API request

The following example sets the rules of an existing entry point ruleset (with ID {ruleset_id}) for the http_response_compression phase to a single compression rule, using the Update a zone ruleset operation:

curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"expression": "http.request.uri.path eq \"/download/assets.tar\"",
"action": "compress_response",
"action_parameters": {
"algorithms": [
{ "name": "brotli" }
]
}
}
]
}'