Using CDN like Cloudflare with mod_rewrite to save bandwidth

cachecdncloudflaremod-rewritePROXY

I know CDNs like Cloudflare save bandwidth by caching static files as images, JS, and CSS files.

I have a script that generates images on the fly and its location looks something like this:

http://domain.com/image.php?id=1

With id being the image id. Cloudflare won't cache these images due to the dynamic URL. If I add a mod rewrite rule to rewrite the URL to become something like:

http://domain.com/images/1

or

http://domain.com/images/1.jpg

Will CloudFlare cache the images in this case or the images have to actually be real files that reside in directories?

Best Answer

The easiest way to Cache Everything on a given endpoint in CloudFlare is to use a Cache Everything Page Rule, an asterisk will match a wildcard result. So in your first example we can do the following:

CloudFlare Cache Everything on endpoint

Cache Everything can only be enabled using a Page Rule, so they above example will best in the vast majority of cases, but it is also possible to set a general rule in CloudFlare as to how query strings are dealt with.

You can do this globally in the "Caching" tab of your CloudFlare dashboard, by default the Standard option will cache the resource as varied by the query string.

Set Caching Level in CloudFlare

Related Topic