← Images / images / optimization / transformations
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:
- Poskytování obrázků z vlastních cest
- Upravte stávající adresy URL tak, aby byly kompatibilní s transformacemi v Images
- Transformace každého obrázku požadovaného ve vaší zóně pomocí Images
Chcete-li vytvořit pravidlo:
-
V dashboardu Cloudflare přejděte na Přehled pravidel stránce.
Přejděte na Přehled ↗ -
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/:
(starts_with(http.request.uri.path, "/images")) and (not (any(http.request.headers["via"][*] contains "image-resizing")))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/:
(http.request.uri.path matches "^/images/.*$") and (not (any(http.request.headers["via"][*] contains "image-resizing")))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]+)$")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")))regex_replace(http.request.uri.path, "/(.*)", "/cdn-cgi/image/format=auto/${1}")