微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wordpress-使用没有$args的原始$request_uri设置fastcgi_cache_key

我正在尝试集成wordpress插件(Jetpack的Related Posts模块),该插件查询字符串添加到帖子URL的末尾.我想使用FastCGI缓存URL,而完全忽略查询字符串/ $args.

我当前的配置是:fastcgi_cache_key“ $scheme $request_method $host $request_uri”;

我知道使用the solution mentioned here关闭包含某些$arg的URL的$skip_cache变量,它可以工作.但是,无论$args的值如何,我都希望缓存相同的结果,而不是为每组$args使用唯一的缓存键.

我也知道some suggestionsfastcgi_cache_key中只使用$uri而不是$request_uri;但是,由于$uri不仅是原始请求的URI减去$args,因此wordpress体系结构中的某些内容(可能是漂亮的链接)会强制所有请求的URI返回相同的缓存结果(而不是每个页面都返回不同的结果).

有什么方法可以真正使用最初请求的URI,而不必在缓存键中包含$args?

解决方法:

刚才,我有类似的问题.
所以,我的解决方案:

Nginx配置中添加

http  { 
    ...
    map $request_uri $request_path { 
       ~(?<captured_path>[^?]*) $captured_path; 
    }
    ...
}

然后,您将获得一个变量$request_path,其中包含$request_uri,而没有query_string.

因此,使用$request_path作为缓存键

fastcgi_cache_key "$scheme$request_method$host$request_path"

重要. “ map”伪指令只能添加到“ http {}”中.该指令将对所有主机的所有请求执行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐