I want CloudFlare to cache urls starting with www.mydomain.com/site.webmanifest in the same “standard” way it caches images and static files. That is, I want all these urls:
- www.mydomain.com/site.webmanifest
- www.mydomain.com/site.webmanifest?v=1
- www.mydomain.com/site.webmanifest?v=2
to be cached as different urls. So if I request (1) and then (2), the second will be a miss, but if I then request (2) again, it will be a hit, etc.
The response is actually generated by PHP, it contains cookies, and the Content-Type header is application/manifest+json.
So I’ve done everything according to https://support.cloudflare.com/hc/en-us/articles/202775670-How-do-I-cache-static-HTML-
- I have added a Page Rule for:
mydomain.com/site.webmanifest
(I want it to work with mydomain.com, www.mydomain.com, whateversubdomain.mydomain.com)
(yes I’m fine with everything starting with site.webmanifest being cached too, e.g. site.webmanifest.123.json)
- The Page Rule has these settings:
Cache Level: Cache Everything
Edge TTL: 1 month
According to documentation: " When combined with an Edge Cache TTL > 0 , Cache Everything removes cookies from the origin web server response".
- I have made sure that I’m not returning any Cache-Control headers from my server. I know those would cause a cache bypass.
So, according to documentation my response should be cached.
Yet it is not cached and I get the header CF-Cache-Status: BYPASS.
I see no reason why caching should be bypassed.
What am I missing, or rather, what is missing in the documentation?
I tried changing the url for the pageRule to www.mydomain.com/site.webmanifest (with no *'s before or after) and testing with just the plain url with no query string. The result is the same.