目前在WordPress安装上安装了W3 Total Cache。整个站点都启用了https://,但有时候缓存会抓取一个源自http://的页面。此缓存页面包括对源自http的JS和CSS文件的引用,当缓存页面通过https加载时,这些资源无法加载。
任何人都知道如何保持此插件缓存非安全内容?
您无法在W3 Total Cache中禁用http请求的缓存。只能在Page Cache |中启用/禁用https请求的缓存一般|缓存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 Uncached和How long do browsers cache HTTP 301s?