← Правила Cloudflare / rules / transform
Response Header Transform Rules
Используйте Response Header Transform Rules, чтобы изменять заголовки HTTP-ответов, отправляемых посетителям сайта.
flowchart LR
accTitle: Header modifications diagram
accDescr: Header transform rules can change the headers sent to your origin server (request header modifications) or sent your your website visitors (response header modifications).
A[Visitor]
B((Cloudflare))
C[(Origin server)]
A -.-> B -. "Includes request<br> header modifications" .-> C
C -.-> B == "Includes response<br> header modifications" ==> A
style A stroke-width: 2px
style B stroke: orange,fill: orange,color: black
linkStyle 0,1,2 stroke-width: 1px
linkStyle 3 stroke-width: 3px
Чтобы изменить заголовки HTTP в запрос отправляется на ваш исходный сервер, см. Request Header Transform Rules.
С помощью Response Header Transform Rules можно:
- Задаёт значение заголовка HTTP-ответа как буквальную строку, перезаписывая предыдущее значение или добавляя новый заголовок к ответу, если он отсутствует.
- Задаёт значение заголовка HTTP-ответа на основе выражения, перезаписывая предыдущее значение или добавляя новый заголовок к ответу, если он отсутствует.
- Добавляет новый заголовок HTTP-ответа со значением в виде строкового литерала, не удаляя уже существующие заголовки с тем же именем.
- Добавляет новый заголовок HTTP-ответа согласно выражению, не удаляя уже существующие заголовки с тем же именем.
- Удаляет HTTP-заголовок из ответа.
Правило преобразования заголовка ответа можно создать в панели управления, через API, или с помощью Terraform.
Для более сложных изменений заголовков ответа используйте Snippets.
Важные примечания
-
Значения заголовков ответа вычисляются на основе значений полей соответствующего HTTP-запроса. Например, поле
ip.src.country(используется в выражениях) возвращает страну посетителя сайта, а не страну исходного сервера, откуда был отправлен ответ. -
Нельзя добавлять, изменять или удалять заголовки ответа HTTP, имя которых начинается с
cf-илиx-cf-. -
Нельзя изменять значение некоторых заголовков, например
server,eh-cache-tag, илиeh-cdn-cache-control. -
В настоящее время нельзя ссылаться на Списки IP-адресов в выражениях Response Header Transform Rules.
-
Операция удаления заголовка HTTP-ответа удаляет все заголовки ответа с указанным именем.
-
Если вы меняете значение существующего заголовка HTTP-ответа с помощью выражения, результатом которого является пустая строка (
"") или неопределённое значение, HTTP-заголовок ответа будет удалён. -
В настоящее время существует ограниченное количество заголовков HTTP-ответов, которые нельзя изменить. Cloudflare может снять эти ограничения для некоторых из таких заголовков при наличии обоснованных сценариев использования. Создайте публикацию в сообществе ↗ для рассмотрения.
-
Правила преобразования заголовков ответа также применяются к стандартным страницам ошибок Cloudflare и Custom Errors.
-
Изменение
cache-control,CDN-Cache-Control, илиCloudflare-CDN-Cache-Controlзаголовки с помощью Response Header Transform Rules не изменит способ кэширования объекта в Cloudflare, поскольку Cloudflare определяет поведение кэширования до применения изменений заголовков ответа. Чтобы управлять поведением кэша Cloudflare, создайте cache rule. -
Чтобы добавить
set-cookieзаголовок к ответу, используйте один из Add static/Add dynamic операции вместо Задать статическое значение/Включить динамический режим. Add добавляют новый заголовок, не удаляя существующие заголовки с тем же именем, тогда как Установить заменяют все существующие заголовки с этим именем. Использование Установить операция дляset-cookieудалит всеset-cookieзаголовки, уже присутствующие в ответе, включая заголовки, добавленные другими продуктами Cloudflare, такими как Bot Management. -
Правила преобразования заголовков ответа выполняются по порядку, и более поздние правила могут перезаписывать изменения, внесённые предыдущими правилами.
-
Значения полей запроса и ответа неизменны в пределах каждого фаза, например
http_response_headers_transformфаза, в которой определяются правила преобразования заголовков ответа. Это означает, что более поздние правила преобразования заголовков ответа при вычислении своих выражений фильтра будут по-прежнему использовать исходные значения полей, а не значения, изменённые предыдущими правилами. См. Значения полей при оценке правила, где это описано подробнее.
Устранение неполадок
При устранении неполадок с Response Header Transform Rules используйте Cloudflare Trace чтобы определить, срабатывает ли правило для конкретного URL.