Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
1 change: 0 additions & 1 deletion src/content/docs/cache/get-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@

* [Avoid web cache poisoning attacks](/cache/cache-security/avoid-web-poisoning/)
* [Configure Cross-Origin Resource Sharing (CORS)](/cache/cache-security/cors/)
* [Enable Cache Deception Armor](/cache/cache-security/cache-deception-armor/#enable-cache-deception-armor)

Check warning on line 59 in src/content/docs/cache/get-started.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

## Cloudflare features that can alter your HTML and cacheable objects

Expand All @@ -68,7 +68,6 @@

* [Rocket Loader](/speed/optimization/content/rocket-loader/)
* [Polish](/images/polish/)
* [Mirage](/speed/optimization/images/mirage/) (deprecated)
* [Hotlink Protection](/waf/tools/scrape-shield/hotlink-protection/)
* [Email address obfuscation](/waf/tools/scrape-shield/email-address-obfuscation/)
* [Bot Management JavaScript Detections](/bots/additional-configurations/javascript-detections/)
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/cache/reference/etag-headers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ The Cloudflare network will take the following actions, depending on the visitor

</table-wrap>

Enabling **Respect Strong ETags** in Cloudflare automatically disables Rocket Loader, Email Obfuscation, Automatic HTTPS Rewrites, and Mirage.
Enabling **Respect Strong ETags** in Cloudflare automatically disables Rocket Loader, Email Obfuscation, and Automatic HTTPS Rewrites.

### Behavior with Respect Strong ETags disabled

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ This is not an exhaustive list of Cloudflare products and features.
| [IPv6 Compatibility](/network/ipv6-compatibility/) | Yes | Yes\* | If the customer zone has **IPv6 Compatibility** enabled, generally the SaaS zone should as well.<br/><br/>If not, make sure the SaaS zone enables [Pseudo IPv4](/network/pseudo-ipv4/). |
| [Load Balancing](/load-balancing/) | No | Yes | Customer zones can still use Load Balancing for non-O2O traffic. |
| [Page Rules](/rules/page-rules/) | Yes\* | Yes | Page Rules that match the subdomain used for O2O may block or interfere with the flow of visitors to your website. |
| [Mirage](/speed/optimization/images/mirage/) (deprecated) | Yes | Yes | |
| [Origin Rules](/rules/origin-rules/) | Yes | Yes | Enterprise zones can configure Origin Rules, by setting the Host Header and DNS Overrides to direct traffic to a SaaS zone. |
| [Page Shield](/page-shield/) | Yes | Yes | |
| [Polish](/images/polish/) | Yes\* | Yes | Polish only runs on cached assets. If the customer zone is bypassing cache for SaaS zone destined traffic, then images optimized by Polish will not be loaded from origin. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ To use certain Cloudflare features, however, you may need to update the headers

| Feature(s) | Updated headers |
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Rocket Loader](/speed/optimization/content/rocket-loader/), [Mirage](/speed/optimization/images/mirage/) | `script-src 'self' ajax.cloudflare.com;` |
| [Rocket Loader](/speed/optimization/content/rocket-loader/) | `script-src 'self' ajax.cloudflare.com;` |
| [Scrape Shield](/waf/tools/scrape-shield/) | `script-src 'self' 'unsafe-inline'` |
| [Web Analytics](/web-analytics/) | `script-src static.cloudflareinsights.com; connect-src cloudflareinsights.com` |
| [Bot products](/bots/) | Refer to [JavaScript detections and CSPs](/cloudflare-challenges/challenge-types/javascript-detections/#if-you-have-a-content-security-policy-csp). |
Expand Down
24 changes: 0 additions & 24 deletions src/content/docs/rules/configuration-rules/settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -152,30 +152,6 @@ API configuration property name: `"fonts"` (boolean).

</Details>

## Mirage

:::caution[Deprecation notice]
Mirage was deprecated on September 15, 2025.
:::

[Mirage](/speed/optimization/images/mirage/) accelerates image delivery for your visitors based on their device.

Use this setting to turn on or off Mirage for matching requests.

<Details header="API information">

API configuration property name: `"mirage"` (boolean).

```json title="API configuration example"
"action_parameters": {
"mirage": false
}
```

<Render file="configuration-rule-link-to-examples" product="rules" />

</Details>

## Opportunistic Encryption

[Opportunistic Encryption](/ssl/edge-certificates/additional-options/opportunistic-encryption/) allows browsers to access HTTP URIs over an encrypted TLS channel.
Expand Down
1 change: 0 additions & 1 deletion src/content/docs/rules/page-rules/reference/settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
| [Browser Cache TTL](/cache/how-to/edge-browser-cache-ttl/) | Control how long resources cached by client browsers remain valid. The Cloudflare dashboard and the API both prohibit setting **Browser Cache TTL** to `0` for non-Enterprise domains. | All |
| [Browser Integrity Check](/waf/tools/browser-integrity-check/) | Inspect the visitor's browser for headers commonly associated with spammers and certain bots.<Render file="configuration-rule-promotion" product="rules" />  | All |
| Bypass Cache on Cookie | Bypass cache and fetch resources from the origin server if a regular expression matches against a cookie name present in the request.<br/>If you add both this setting and the *Cache On Cookie* setting to the same page rule, *Cache On Cookie* takes precedence over *Bypass Cache on Cookie*.<br/><br/>Refer to the [Additional details](/rules/page-rules/reference/additional-reference/#bypass-cache-on-cookie-setting) to learn about limited regular expression support. | Business and Enterprise |
| [Cache By Device Type](/cache/how-to/cache-rules/examples/cache-device-type/) | Separate cached content based on the visitor’s device type.  | Enterprise |

Check warning on line 30 in src/content/docs/rules/page-rules/reference/settings.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)
| [Cache Deception Armor](/cache/cache-security/cache-deception-armor/) | Protect from web cache deception attacks while still allowing static assets to be cached. This setting verifies that the URL's extension matches the returned *Content-Type*.  | All |

Check warning on line 31 in src/content/docs/rules/page-rules/reference/settings.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)
| Cache Level | Apply custom caching based on the option selected:<br/><br/>– **Bypass**: Cloudflare does not cache.<br/>– **No Query String**: Delivers resources from cache when there is no query string.<br/>– **Ignore Query String**: Delivers the same resource to everyone independent of the query string.<br/>– **Standard**: Caches all static content that has a query string.<br/>– **Cache Everything**: Treats all content as static and caches all file types beyond the [Cloudflare default cached content](/cache/concepts/default-cache-behavior/#default-cached-file-extensions). Respects cache headers from the origin web server unless **Edge Cache TTL** is also set in the Page Rule. When combined with an **Edge Cache TTL** > `0`, **Cache Everything** removes cookies from the origin web server response.  | All |
| Cache on Cookie | Apply the *Cache Everything* option (*Cache Level* setting) based on a regular expression match against a cookie name.<br/>If you add both this setting and *Bypass Cache on Cookie* to the same page rule, *Cache On Cookie* takes precedence over *Bypass Cache on Cookie*. | Business and above |
| [Cache TTL by Status Code](/cache/how-to/configure-cache-status-code/) | Enterprise customers can set cache time-to-live (TTL) based on the response status from the origin web server. Cache TTL refers to the duration of a resource in the Cloudflare network before being marked as stale or discarded from cache. Status codes are returned by a resource's origin. Setting cache TTL based on response status overrides the default cache behavior (standard caching) for static files and overrides cache instructions sent by the origin web server. To cache non-static assets, set a Cache Level of Cache Everything using a Page Rule. Setting no-store Cache-Control or a low TTL (using `max-age`/`s-maxage`) increases requests to origin web servers and decreases performance. | Enterprise |
Expand All @@ -39,7 +39,6 @@
| Forwarding URL | Redirects one URL to another using an `HTTP 301/302` redirect. Refer to [Wildcard matching and referencing](/rules/page-rules/reference/wildcard-matching/). | All |
| Host Header Override | Apply a specific host header.<Render file="origin-rule-promotion" product="rules" params={{ originRuleUrl: "/rules/origin-rules/features/#host-header" }} /> | Enterprise |
| IP Geolocation Header | Cloudflare adds a `CF-IPCountry` HTTP header containing the country code that corresponds to the visitor. | All |
| [Mirage](/speed/optimization/images/mirage/) | Turn on or off **Mirage** (deprecated).<Render file="configuration-rule-promotion" product="rules" /> | Pro and above |
| [Opportunistic Encryption](/ssl/edge-certificates/additional-options/opportunistic-encryption/) | Turn on or off the **Opportunistic Encryption**.<Render file="configuration-rule-promotion" product="rules" />  | All |
| [Origin Cache Control](/cache/concepts/cache-control/) | Origin Cache Control is enabled by default for Free, Pro, and Business domains and disabled by default for Enterprise domains. | All |
| Origin Error Page Pass-thru | Turn on or off Cloudflare error pages generated from issues sent from the origin server. If enabled, this setting triggers error pages issued by the origin. | Enterprise |
Expand Down
47 changes: 2 additions & 45 deletions src/content/docs/rules/reference/page-rules-migration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

## Page Rules migration

To make the transition seamless, Cloudflare will handle the migration of your existing Page Rules automatically. This process is planned for late 2025 or beyond, with no action required on your part. You will receive advance notification before any changes are made.

Check warning on line 16 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-year

Potential year found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

If you wish to explore the benefits of modern Rules features sooner, you can begin adopting them today. Doing so allows you to:

Expand All @@ -26,7 +26,7 @@

Cloudflare Page Rules has several fundamental limitations, such as triggering solely based on URL patterns and being limited to 125 rules per zone for performance reasons. These rules are also complex to debug when multiple page rules apply to the same incoming request.

In 2022, we announced in our blog post [The future of Page Rules](https://blog.cloudflare.com/future-of-page-rules) that Page Rules would be replaced with a suite of dedicated products, each built to be best-of-breed and put more power into the hands of our users. The new Rules products — [Configuration Rules](/rules/configuration-rules/), [Compression Rules](/rules/compression-rules/), [Origin Rules](/rules/origin-rules/), [Redirects](/rules/url-forwarding/), and [Transform Rules](/rules/transform/) — are now generally available (GA) and have already been adopted by tens of thousands of Cloudflare customers.

Check warning on line 29 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-year

Potential year found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

Improvements in modern Rules features include:

Expand Down Expand Up @@ -82,7 +82,7 @@
| Browser Integrity Check | Configuration Rules | [Migrate Browser Integrity Check](#migrate-browser-integrity-check) |
| Bypass Cache on Cookie | Cache Rules | [Migrate Bypass Cache on Cookie](#migrate-bypass-cache-on-cookie) |
| Cache By Device Type | Cache Rules | [Migrate Cache By Device Type](#migrate-cache-by-device-type) |
| Cache Deception Armor | Cache Rules | [Migrate Cache Deception Armor](#migrate-cache-deception-armor) |

Check warning on line 85 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

Check warning on line 85 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)
| Cache Level | Cache Rules | [Migrate Cache Level](#migrate-cache-level-cache-everything) |
| Cache on Cookie | Cache Rules | [Migrate Cache on Cookie](#migrate-cache-on-cookie) |
| Cache TTL by status code | Cache Rules | [Migrate Cache TTL by status code](#migrate-cache-ttl-by-status-code) |
Expand All @@ -97,7 +97,6 @@
| Forwarding URL | Redirect Rules (Single Redirects) | [Migrate Forwarding URL](#migrate-forwarding-url) |
| Host Header Override | Origin Rules | [Migrate Host Header Override](#migrate-host-header-override) |
| IP Geolocation Header | Transform Rules (Managed Transforms) | [Migrate IP Geolocation Header](#migrate-ip-geolocation-header) |
| Mirage (deprecated) | Configuration Rules | [Migrate Mirage](#migrate-mirage) |
| Opportunistic Encryption | Configuration Rules | [Migrate Opportunistic Encryption](#migrate-opportunistic-encryption) |
| Origin Cache Control | Cache Rules | [Migrate Origin Cache Control](#migrate-origin-cache-control) |
| Origin Error Page Pass-thru | Cache Rules | [Migrate Origin Error Page Pass-thru](#migrate-origin-error-page-pass-thru) |
Expand Down Expand Up @@ -362,16 +361,16 @@

</TabItem> </Tabs>

### Migrate Cache Deception Armor

Check warning on line 364 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

<Tabs> <TabItem label="Dashboard">

**Context:**

You configured a Page Rule turning on Cache Deception Armor for all subdomains of `example.com` and the `example.com` domain itself:

Check warning on line 370 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

- **URL**: `*example.com/*`
- **Setting**: Cache Deception Armor

Check warning on line 373 in src/content/docs/rules/reference/page-rules-migration.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

**How to migrate**:

Expand Down Expand Up @@ -629,7 +628,7 @@
The **Disable Performance** setting is deprecated. Any Page Rules with this setting will not be migrated.
:::

This Page Rules setting turned off Mirage (deprecated), Polish, and Rocket Loader. You can still turn on or off relevant Cloudflare features one by one using Configuration Rules.
This Page Rules setting turned off Polish and Rocket Loader. You can still turn on or off relevant Cloudflare features one by one using Configuration Rules.

<Tabs> <TabItem label="Dashboard">

Expand All @@ -644,15 +643,14 @@

<Steps>

1. [Create a configuration rule](/rules/configuration-rules/create-dashboard/) to disable Mirage, Polish, and Rocket Loader for any hostname containing `example.com`:
1. [Create a configuration rule](/rules/configuration-rules/create-dashboard/) to disable Polish and Rocket Loader for any hostname containing `example.com`:

- **When incoming requests match**: Custom filter expression
- Using the Expression Builder:<br/>
`Hostname contains "example.com"`
- Using the Expression Editor:<br/>
`(http.host contains "example.com")`
- **Then the settings are**:
- **Mirage**: Off
- **Polish**: _Off_
- **Rocket Loader**: Off

Expand Down Expand Up @@ -1007,47 +1005,6 @@

</TabItem> </Tabs>

### Migrate Mirage (deprecated) {/* migrate-mirage */}

<Tabs> <TabItem label="Dashboard">

**Context:**

You configured a Page Rule turning off Mirage (deprecated) for all subdomains of `example.com` and the `example.com` domain itself:

- **URL**: `*example.com/*`
- **Setting**: _Mirage_
- **Value**: Off

**How to migrate**:

<Steps>

1. [Create a configuration rule](/rules/configuration-rules/create-dashboard/) to turn off Mirage for any hostname containing `example.com`:

- **When incoming requests match**: Custom filter expression
- Using the Expression Builder:<br/>
`Hostname contains "example.com"`
- Using the Expression Editor:<br/>
`(http.host contains "example.com")`
- **Then the settings are**:
- **Setting**: Mirage
- **Value**: Off

2. Turn off your existing Page Rule and validate the behavior of the configuration rule you created.

3. If your tests succeed, delete the existing Page Rule.

</Steps>

</TabItem> <TabItem label="Visual guide">

| Page Rules configuration | Migrate to a configuration rule |
| -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Example Page Rule with 'Mirage' setting](~/assets/images/rules/reference/page-rules-migration/pr-mirage.png) | ![Configuration rule matching the 'Mirage > Off' setting of the example Page Rule](~/assets/images/rules/reference/page-rules-migration/pr-mirage-new.png) |

</TabItem> </Tabs>

### Migrate Opportunistic Encryption

<Tabs> <TabItem label="Dashboard">
Expand Down
Loading
Loading