INTEGRITY Dokumentace

Nastavení přepisovacích pravidel

Pomocí Transform Rules můžete přepisovat URL adresy u každého obrázku, který transformujete přes Images.

Tato stránka obsahuje příklady pro následující scénáře:

Chcete-li vytvořit pravidlo:

  1. V dashboardu Cloudflare přejděte na Přehled pravidel stránce.

    Přejděte na Přehled ↗
  2. Vyberte Vytvořit pravidlo vedle URL Rewrite Rules.

Než začnete

Každé pravidlo se spustí před transformačním požadavkem i po něm.

Pokud se cesta požadavku shoduje s cestou, na které jsou na vašem serveru uloženy původní obrázky, může to způsobit, že se požadavek na načtení původního obrázku zacyklí.

Chcete-li požadavek nasměrovat na origin server, můžete zkontrolovat řetězec image-resizing v Via hlavičku:

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

Poskytování obrázků z vlastních cest

Ve výchozím nastavení jsou požadavky na transformaci obrázků přes Images obsluhovány z /cdn-cgi/image/ cesty. K přepisování URL adres můžete použít Transform Rules.

Základní verze

Plány Free a Pro podporují pravidla porovnávání řetězců (včetně zástupných operací), která nevyžadují regulární výrazy.

Tento příklad umožňuje přepsat požadavek z example.com/images na example.com/cdn-cgi/image/:

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

Pokročilá verze

Existuje pokročilá verze Transform Rules, která podporuje regulární výrazy.

Tento příklad umožňuje přepsat požadavek z example.com/images na example.com/cdn-cgi/image/:

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

Upravte stávající adresy URL tak, aby byly kompatibilní s transformacemi v Images

Tento příklad umožňuje přepsat parametry URL adresy tak, aby byly kompatibilní s Images:

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

Ponechte Dotaz > Přepsat na > Statický pole prázdné.

Nechte všechny obrázky požadované ve vaší zóně procházet přes Images

Tento příklad umožňuje transformovat každý obrázek požadovaný ve vaší zóně pomocí format=auto možnost:

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