之前介绍过,我的博客方案已经更换为全静态,详细可以参考我这篇文章《WordPress “纯”静态化

理论来说,所有静态资源回源一遍之后,后面的请求都会直接从CDN获取资源,并不会进行回源操作,除非我更新了资源,并且手动刷新资源。

但长久以来,还是从源站上看到了许多已经回源过的资源,而绝大多数的特征都在于 ‘?’ 这个符号之后。遂才想起,忘记了做 ignore query string,此篇文章谨当记录一下操作过程。


正文

之前文章介绍过,我是通过 NS 解析时,将请求划分为境内与境外,境内使用了 腾讯云CDN,境外为CloudFlare。所以此文也分为两个步骤分别进行。

Tencent Cloud CDN

未进行 ignore query string 操作时,在网址后面输入 ‘?*’ 时会自动回源。

img

此时,在腾讯云CDN的域名管理之中找到缓存配置,修改全部文件配置

img

修改为下图所示即可:

img

此时即可看到,没有回源,命中了缓存。

img

CloudFlare

未进行 ignore query string 操作时,在网址后面输入 ‘?*’ 时会自动回源。

img

在页面规则中,新增以下配置:

URL (required) :*youdomain/*?*
Pick a Setting (required):Forwarding URL
Select status code (required):301 - Permanent Redirect
Enter destination URL (required):https://$1youdomain/$2

如下图所示:

img

此时再进行 query string 操作时,CloudFlare便会自动的301跳转到无 query string 操作的页面,以达到ignore query string的效果

img

本方法可能不适用于您的站点,请慎重参考。