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