我们的网站匿名用户内容通常是静态的(每小时更新一次),登录用户的内容因每个用户而异,经常更新。
是否可以配置cloudflare,以便为匿名用户缓存HTML但未登录用户,两者的URL相同?
我们可以设置任何相关的缓存标头吗?
答案 0 :(得分:2)
我一直在努力应对同样的情况,据我所知,没有办法, 在cloudflare中,您可以设置页面规则,但这些只会查看URL本身。
因此,我看到的唯一解决方案是为每种类型的用户提供不同的URL(一些额外参数或可能是子域),然后您可以轻松设置规则以手动强制缓存到期时间
答案 1 :(得分:1)
我不确定这是否可行,但我认为这样做的唯一方法是通过HTTP / HTTPS,因为您可以在CloudFlare页面规则中使用它。
因此,如果您将WordPress FORCE_SSL_ADMIN常量设置为true,然后将所有登录的用户URL请求重定向到页面的HTTPS架构,这可能会起到作用,从而可以绕过CloudFlare缓存吗?
答案 2 :(得分:1)
是。 Cloudflare says它会尊重请求没有缓存的元标记,因此只需将这些标记添加到页面的标题部分以供登录用户使用。
示例(使用smarty)
{if $loggedin}
<meta http-equiv="cache-control" content="no-cache" />
{/if}
(使用PHP)
if($loggedin)
{
echo "<meta http-equiv=\"cache-control\" content=\"no-cache\" />";
}
答案 3 :(得分:0)
除非您处于企业计划级别,否则无法做到这一点。
答案 4 :(得分:-2)
来自here
的解决方案向页眉添加私有缓存控件:
//recommended by cloudflare for logged in users
if ( is_user_logged_in() ) {
header(‘Cache-Control: private, max-age=3600’);
}