OpenLiteSpeed启用OLS Cache后Elementor修改保存不生效问题咨询
OpenLiteSpeed Cache下Elementor修改无法保存生效的解决方案
根因说明
OpenLiteSpeed默认公共缓存规则缺失对Elementor专属编辑请求的识别逻辑,误将带action=elementor参数的编辑器AJAX请求、Elementor预览页判定为可公共缓存的静态内容:
checkPublicCache=1时服务端会强制缓存这类动态请求返回的旧版编辑器数据,且公共缓存优先级高于私有缓存,登录态的管理员也会命中公共缓存的旧内容- 禁用WordPress侧的OLS缓存插件无法生效的原因是,你触发的是OpenLiteSpeed服务端全局的公共缓存规则,站点层的插件禁用不会覆盖服务端的缓存配置
修复步骤
方案1:调整WordPress侧LiteSpeed Cache插件配置(优先尝试)
进入WordPress后台→LiteSpeed Cache→设置→缓存→排除选项卡,添加以下配置:
- 排除URI:填写
/wp-admin/* - 排除查询字符串:依次添加
action=elementor、elementor-preview - 保存配置后清空站点所有缓存
方案2:修改OpenLiteSpeed服务端虚拟主机缓存规则
如果方案1不生效,直接编辑对应站点的虚拟主机重写规则,添加以下内容:
# 排除WordPress后台和Elementor编辑请求公共缓存 RewriteCond %{REQUEST_URI} ^/wp-admin/ [NC,OR] RewriteCond %{QUERY_STRING} (^|&)action=elementor(&|$) [NC,OR] RewriteCond %{QUERY_STRING} (^|&)elementor-preview= [NC] RewriteRule .* - [E=Cache-Control:no-cache] # 登录用户强制走私有缓存,避免命中公共缓存 RewriteCond %{HTTP_COOKIE} wordpress_logged_in_ [NC] RewriteRule .* - [E=Cache-Control:private,E=Cache-Vary:wordpress_logged_in]
保存规则后重启OpenLiteSpeed服务,清空所有缓存。
验证方法
- 进入Elementor编辑页面修改内容并保存
- 前端刷新确认新修改内容生效
- 刷新Elementor编辑界面,确认显示最新修改内容即可
- 此时
checkPublicCache可保持为1,不会影响访客侧的公共缓存加速效果
问题相关配置截图

内容的提问来源于stack exchange,提问作者Ilkar
相关产品推荐
相关产品推荐

