Cloudflare可以为匿名用户缓存HTML但不登录用户吗?

时间:2013-03-21 03:13:11

标签: cloudflare

我们的网站匿名用户内容通常是静态的(每小时更新一次),登录用户的内容因每个用户而异,经常更新。

是否可以配置cloudflare,以便为匿名用户缓存HTML但未登录用户,两者的URL相同?

我们可以设置任何相关的缓存标头吗?

5 个答案:

答案 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)

除非您处于企业计划级别,否则无法做到这一点。

https://www.cloudflare.com/plans/

答案 4 :(得分:-2)

来自here

的解决方案

向页眉添加私有缓存控件:

//recommended by cloudflare for logged in users
if ( is_user_logged_in() ) {
header(‘Cache-Control: private, max-age=3600’);
}