我无法让W3tC页面缓存工作。我检查了重写规则,它们都在我的vps服务器上设置。我最近通过Digital Ocean设置了vps服务器。
我得到的错误是:
W3 Total Cache错误:显示页面缓存URL重写不起作用。请验证服务器配置是否允许.htaccess 遗憾的是,如果没有自定义重写规则,磁盘增强页面缓存将无法运行请咨询服务器管理员以获取帮助。另请参阅服务器规则的安装页面。
技术信息是
.htaccess文件包含重写URL的规则。
该插件向https://example.com/w3tc_rewrite_test
提出请求但收到:
找不到404而不是" OK"响应。
答案 0 :(得分:0)
使用root / .htaccess
中的代码进行测试# BEGIN W3TC Browser Cache
<IfModule mod_rewrite.c>
<IfModule mod_deflate.c>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json
<IfModule mod_mime.c>
# DEFLATE by extension
AddOutputFilter DEFLATE js css htm html xml
</IfModule>
</IfModule>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*/)?w3tc_rewrite_test/?$ $1?w3tc_rewrite_test=1 [L]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{HTTP_COOKIE} w3tc_preview [NC]
RewriteRule .* - [E=W3TC_PREVIEW:_preview]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 1 :(得分:0)
这是对@h2kyaw 的简短回答。如果在 .htaccess root 目录中添加以下行就足够了。
<IfModule mod_rewrite.c>
RewriteRule ^(.*\/)?w3tc_rewrite_test([0-9]+)/?$ $1?w3tc_rewrite_test=1 [L]
</IfModule>
答案 2 :(得分:0)
此错误是由“.htaccess”中出现的规则顺序引起的,请确保 WordPress 的规则出现在 W3TC 规则之后。
#...
# END W3TC Page Cache core
所以
最终的 .htaccess 文件结构应该是这样的
# BEGIN W3TC Browser Cache
......
# END W3TC Browser Cache
# BEGIN WordPress
.....
# END WordPress
这是一种经过测试的方法,效果很好。谢谢。
来源:Fix – W3 Total Cache error: It appears Page Cache URL rewriting is not working – Easy Method