【问题标题】:W3 Total Cache keeps caching non https pagesW3 Total Cache 不断缓存非 https 页面
【发布时间】:2023-03-08 23:47:01
【问题描述】:

目前在 WordPress 安装上安装了 W3 Total Cache。整个站点都启用了 https://,但偶尔缓存会抓取来自 http:// 的页面。此缓存页面包含对同样来自 http 的 JS 和 CSS 文件的引用,当缓存页面通过 https 加载时,这些资源无法加载。

有人知道如何防止这个插件缓存不安全的内容吗?

【问题讨论】:

  • 我假设您的 Web 服务器将 http 重定向到 https,然后您尝试清除 W3C 缓存?此外,您已更新您的 WP 数据库以使用 https 域而不是 http,然后清除缓存?不想贬低这个问题,但这就是我要开始的地方。
  • siteurlhome 都设置为 https:// URLS。现在,当问题发生时,我必须清除缓存并再次访问该页面。这通常可以修复它,但是当我不在计算机附近并且管理员被锁定到批准的 IP 时并不理想。

标签: php wordpress w3-total-cache


【解决方案1】:

您不能在 W3 Total Cache 中禁用对 http 请求的缓存。只有 https 请求的缓存可以启用/禁用,在 Page Cache |一般 |缓存 SSL (https) 请求 复选框。所以,我想你应该尝试通过其他方式解决这个问题。

如果您的整个安装配置为 https 并且完全不希望使用 http 请求,请将以下行添加到您的 WordPress .htaccess 文件中:

# **************************************************************************
#   Redirect HTTP to HTTPS
# **************************************************************************
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} ^(.*)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=temporary,L]

上面的代码会将所有 HTTP 请求重定向到它们在 HTTPS 协议中的等价物。这样,WordPress 将永远不会生成任何不安全的页面,因此,W3 Total Cache 不会将此类页面放入其缓存中。

顺便说一句:在代码中使用“临时”而不是“永久”是建议性的:它旨在避免出现涉及浏览器缓存的可怕问题,因为无论出于何种原因,您必须返回 http 请求(过期证书等) - 见301 Redirects: The Horror That Cannot Be UncachedHow long do browsers cache HTTP 301s?

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 2020-07-30
    • 2016-04-03
    • 2018-12-07
    • 2019-05-29
    • 1970-01-01
    • 2018-08-29
    • 2012-02-09
    • 2013-03-14
    相关资源
    最近更新 更多