4

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

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

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

4

5 回答 5

2

我一直在同样的情况下苦苦挣扎,据我所知,没有办法,在 cloudflare 中你可以设置页面规则,但那些只会查看 URL 本身。

所以我看到的唯一解决方案是为每种用户设置不同的 URL(一些额外的参数或者可能是子域),然后您可以轻松设置规则以手动强制缓存过期时间

于 2013-07-25T15:07:43.140 回答
1

我不确定这是否可行,但我能想到的唯一方法是通过 HTTP/HTTPS,因为您可以在 CloudFlare 页面规则中使用它。

因此,如果您将 WordPress FORCE_SSL_ADMIN 常量设置为 true,然后将所有登录的用户 URL 请求重定向到页面的 HTTPS 模式,这可能会成功,从而可以绕过 CloudFlare 缓存?

于 2016-02-19T13:55:04.467 回答
-1

除非您处于企业计划级别,否则这是不可能的。

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

于 2016-08-09T22:22:47.553 回答
-3

这里开始的解决方案

在页眉中添加私有缓存控件:

//recommended by cloudflare for logged in users
if ( is_user_logged_in() ) {
header(‘Cache-Control: private, max-age=3600’);
}
于 2017-02-01T02:59:15.120 回答
-3

是的。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\" />";
  }
于 2017-07-18T14:00:52.820 回答