INTEGRITY Документация

Настройте правила перезаписи

С помощью Transform Rules можно переписывать URL для каждого изображения, преобразуемого через Images.

На этой странице приведены примеры для следующих сценариев:

Чтобы создать правило:

  1. На панели управления Cloudflare перейдите к разделу Обзор правил страницу.

    Перейдите в Обзор ↗
  2. Выберите Создать правило рядом с URL Rewrite Rules.

Прежде чем начать

Каждое правило выполняется до и после запроса на преобразование.

Если путь запроса совпадает с путём, по которому исходные изображения хранятся на вашем сервере, запрос за исходным изображением может зациклиться.

Чтобы направить запрос на исходный сервер, можно проверить наличие строки image-resizing в Via заголовок:

...and (not (any(http.request.headers["via"][*] contains "image-resizing")))

Раздача изображений по пользовательским путям

По умолчанию запросы на трансформацию изображений через Images обслуживаются из /cdn-cgi/image/ путь. Для перезаписи URL можно использовать Transform Rules.

Базовая версия

Планы Free и Pro поддерживают правила сопоставления строк (включая операции с подстановочными знаками), не требующие регулярных выражений.

Этот пример позволяет переписать запрос от example.com/images к example.com/cdn-cgi/image/:

Текст в Expression Editor
(starts_with(http.request.uri.path, "/images")) and (not (any(http.request.headers["via"][*] contains "image-resizing")))
Текст в Path > Rewrite to > Dynamic
concat("/cdn-cgi/image", substring(http.request.uri.path, 7))

Расширенная версия

Существует расширенная версия Transform Rules с поддержкой регулярных выражений.

Этот пример позволяет переписать запрос от example.com/images к example.com/cdn-cgi/image/:

Текст в Expression Editor
(http.request.uri.path matches "^/images/.*$") and (not (any(http.request.headers["via"][*] contains "image-resizing")))
Текст в Path > Rewrite to > Dynamic
regex_replace(http.request.uri.path, "^/images/", "/cdn-cgi/image/")

Измените существующие URL-адреса для совместимости с преобразованиями в Images

Этот пример позволяет переписать параметры URL-адреса так, чтобы они были совместимы с Images:

(http.request.uri matches "^/(.*)\\?width=([0-9]+)&height=([0-9]+)$")
Текст в Path > Rewrite to > Dynamic
regex_replace(
  http.request.uri,
  "^/(.*)\\?width=([0-9]+)&height=([0-9]+)$",
  "/cdn-cgi/image/width=${2},height=${3}/${1}"
)

Оставьте Запрос > Rewrite to > Статический поле пустым.

Пропускайте через Images каждое изображение, запрошенное в вашей зоне

Этот пример позволяет трансформировать каждое изображение, запрашиваемое в вашей зоне, с помощью format=auto параметр:

(http.request.uri.path.extension matches "(jpg)|(jpeg)|(png)|(gif)") and (not (any(http.request.headers["via"][*] contains "image-resizing")))
Текст в Path > Rewrite to > Dynamic
regex_replace(http.request.uri.path, "/(.*)", "/cdn-cgi/image/format=auto/${1}")