Is it possible to cache static html while ignore query string?

My site https://blog.skk.moe is using Hexo which is a static blog framework. That means every page is a single HTML. No matter what query string is, the page is always the same. So I want to cache static HTML at Cloudflare and ignore query strings.

Currently I have added a page rule like this:

blog.skk.moe/*

- Origin Cache Control: On
(I have added cache-control header at my origin server and I want Cloudflare to follow the TTL I set)

- Cache Level: Cache Everything

When Cache Level is Cache Everything, Cloudflare will not hit the cache when query string changes
If I set Cache Level to Ignore Query String, Cloudflare will not cache HTML even though I have add cache-control: public,max-age=600,s-max-age=3600.
What should I do to achieve both of ignore query string and cache static HTML at Cloudflare?

Have you tried setting “ignore query string” globablly under caching and the use a page rule to cache everything?

Emmm, I have changed the global cache settings to Ignore Query String at Cache App of Dashboard. But it seems not work:

In that case it would seem as if the page rule really overrides the global setting.

I guess you cant achieve your goal with the regular settings. Possibly a custom worker could accomplish that, but then that would be a paid feature.

@cscharff, maybe a good idea to split the query string related settings from the overall cache directives.

Yeah. I think it is better to split the cache behavior of query string (No or Ignore) and the cache behavior of some specific mime type of file (.html for example).