# Page Rules Settings

Settings control the actions Medianova CDN takes once a request matches the URL pattern defined in a page rule.

The table below outlines all settings available in Page Rules from the [Medianova Control Panel](https://cloud.medianova.com).

{% hint style="info" %}
Medianova can implement custom page rule configuration at your request, for example network rate limit and security headers.
{% endhint %}

| Setting                                                               | Description                                     | Packages                    |
| --------------------------------------------------------------------- | ----------------------------------------------- | --------------------------- |
| [Cache Type](#cache-type)                                             | Configure edge caching behaviour and TTL        | All                         |
| [CORS](#cors)                                                         | Configure cross-origin resource sharing headers | All                         |
| [Custom Header](#custom-header)                                       | Add or remove request and response headers      | All                         |
| [Downloadable Query String Header](#downloadable-query-string-header) | Trigger browser to download file                | All                         |
| [Exact Match](#exact-match)                                           | Disable recursive URL matching                  | All                         |
| [Hotlink Protection](#hotlink-protection)                             | Configure specific hotlink protection           | Starter, Growth, Enterprise |
| [Options Request](#options-request)                                   | Enable OPTIONS requests                         | All                         |
| [Query String Caching](#query-string-caching)                         | Configure specific query string caching         | All                         |
| [Range Based Caching](#range-based-caching)                           | Disable range based caching                     | All                         |

### Cache Type

Use the Cache Type setting to control CDN caching.

Select **Edge** to specify how long the CDN may cache responses.

Select **Origin** to instruct the CDN to determine the maximum cache duration from origin response headers `cache-control` or `expires` .

Select **Dynamic** to disallow the CDN to cache responses for matching URLs.

### CORS

The CORS setting controls the cross-origin resource sharing (CORS) header `access-control-allow-origin` in responses served by Medianova CDN edge servers.

<table><thead><tr><th width="279.3651123046875">Option</th><th>Description</th></tr></thead><tbody><tr><td>On</td><td>Edge servers use the settings of the <a href="/pages/eqfoQ8ssdW19Flw0UyP7">Cors Header</a> feature</td></tr><tr><td>Off</td><td>Edge servers forward the CORS header from origin</td></tr><tr><td>Dynamic</td><td>Outgoing CDN responses have the <code>access-control-allow-origin: &#x3C;origin></code> CORS header, where <code>&#x3C;origin></code> is the value of the <code>Origin</code> header in the incoming request</td></tr></tbody></table>

### Custom Header

Set the **Custom Header Type** to **Default** to have the CDN inherit the parent settings, as configured in the Headers tab in the Medianova Panel.

Set the **Custom Header Type** to **Custom** to disable parent setting inheritance and customize the headers.\
Configure the CDN to manipulate headers in requests to origin, or to manipulate headers in responses the CDN sends to clients/browsers.

<table><thead><tr><th width="279.3651123046875">Option</th><th>Description</th></tr></thead><tbody><tr><td>Add Origin Request Header</td><td>Add header to requests to origin</td></tr><tr><td>Remove Origin Request Header</td><td>Remove header from requests to origin</td></tr><tr><td>Add CDN Response Header</td><td>Add header to outgoing CDN responses</td></tr><tr><td>Remove CDN Response Header</td><td>Remove header from outgoing CDN responses</td></tr></tbody></table>

### Downloadable Query String Header

Use the Downloadable Query String Header setting to trigger browsers to download a file instead of displaying it.

In the page rule, toggle the setting on and specify a **Downloadable Query String Header Key** and a **Downloadable Query String Header Value**. For example, set the key to `download` and the value to `yes` to trigger a browser to download the file when it loads a URL with query string `?download=yes` (and the URL matches on File Path and File Extension as configured in the page rule).

The CDN will send the `content-disposition` response header with in its value the `attachment` attribute and the path to the file. For example, `content-disposition: attachment; filename="manual.pdf"`

### Exact Match

Turn on Exact Match to disable recursive directory processing.\
For example, if the page rule has File Path `/dir/` and Exact Match is enabled, only URLs for files in that exact directory will match, while with Exact Match off (default) the page rule would also take action for files in subdirectories like `/dir/subdir/` .

### Hotlink Protection

If Hotlink Protection is turned on in the parent setting in the Security tab, a new page rule will inherit its status and configuration. The Update a Page Rule screen then shows the **Hotlink Protection** toggle in the active state and the **Hotlink Protection Type** is set to **Default**.

Change the **Hotlink Protection Type** to **Custom** to and confgure the **Hotlink Protections** that must apply to matching URLs.

<figure><img src="/files/7UcZGPIsMITxwkrQhHiz" alt=""><figcaption><p>Hotlink Protection screen in Page Rules</p></figcaption></figure>

### Options Request

Turn on Options Request to have the CDN send edge-generated responses to requests with the OPTION method in case the origin does not respond to OPTION requests.

### [Query String Caching](/products/performance-cdn/static-content-delivery/advanced-configuration/caching/query-string-caching.md)

While a new page rule inherits the parent setting for [Query String Caching](/products/performance-cdn/static-content-delivery/advanced-configuration/caching/query-string-caching.md) (as configured in the Caching tab in the [Medianova Control Panel](https://cloud.medianova.com)), you can customize the CDN query string caching behavior for matching URLs.

Query String Caching in Page Rules has four options:

<table><thead><tr><th width="191.5028076171875">Option</th><th>Description</th></tr></thead><tbody><tr><td>Retain All</td><td>Query string is part of the cache key. <code>/image.jpg?123</code> is cached separately from <code>/image.jpg?456</code></td></tr><tr><td>Ignore All</td><td>All query string parameters are ignored. <code>/image.jpg?123</code> and <code>/image.jpg?456</code> are considered the same response</td></tr><tr><td>Retain Specific</td><td>Only the specified query string parameters are included in the cache key</td></tr><tr><td>Ignore Specific</td><td>The specified query string parameters are ignored when determining the cache key</td></tr></tbody></table>

### [Range Based Caching](/products/performance-cdn/static-content-delivery/advanced-configuration/caching/range-based-caching.md)

Page Rules allows you to enable/disable Range Based Caching for matching URLs, regardless of the parent setting for Range Based Caching

(as configured in the Caching tab in the [Medianova Control Panel](https://cloud.medianova.com)).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://clients.medianova.com/products/performance-cdn/static-content-delivery/advanced-configuration/page-rules/page-rules-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
