Page Rule setting: "Request Rewrite"

Just like the current “Forwarding URL” Page Rule setting, a new “Request Rewrite” setting would make it possible to use the power of Page Rules to match a visitor’s page request and alter that requested URL when it grabs it from the origin server. For example, a request to example.com/photograph.jpg could be rewritten as example.com/complicated/file/path/photograph.jpg by matching example.com/* and making the “Request Rewrite” setting direct the request to example.com/complicated/file/path/$1. This would be like the “Forwarding URL” setting, but it would be hidden from the site visitor so a 301 or 302 status code wouldn’t send them to see the full example.com/complicated/file/path/photograph.jpg URL in their address bar.

It actually does.

So what you are asking is that page rules are extended to not only offer a redirect but also a transparent rewrite on Cloudflare’s side without the user ever receiving a redirect?! Right now that can be accomplished with workers.

True, it can be accomplished with Workers, but that is likely overkill for most uses, and would add extra complex code and latency.

Rewriting might only have certain issues with responses including references to its own path

That should not be a concern because it simply takes the input (URL requested by the visitor) and maps it to an output (URL to visit at the origin server) once, then gives that site content back to the visitor. The output never goes back into the input, so recursion and infinite forwarding loops are impossible both at the rewrite engine/CDN and in the visitor’s browser.

I was not referring to loops (even though even that might be possible) but rather to rewritten responses with a path structure that is not valid anymore due to the rewrite. Refer to Apache’s RewriteBase or ProxyPassReverse for example.