WP Fastest Cache一个静态插件,WP后台可以直接下载安装,如果需要专业版wp fastest cache premium专业版破解修改;一般站点免费版功能足够。
我也到处在找写法,测试是否静态化了,相对简单的方式把WP的index.php重命名,如果出现访问异常,那么实际都还是要php解析处理,修改规则后即使php挂掉,网站仍旧能访问。
打开网站的设置-伪静态,备份好原有内容,替换成
location / {
# 如果请求的文件已存在,直接返回
if (-f $request_filename) {
break;
}
set $caches 1; #是否缓存
set $request_file $document_uri; #获取请求文件
set $cache_file ''; #缓存文件
#请求方式是POST的不拦截
if ($request_method = POST) {
set $caches 0;
}
#包含GET请求参数的不拦截(访问量高可以注释掉)
if ($query_string) {
set $caches 0;
}
# 指定静态缓存文件的路径
if ($caches = 0) {
set $request_file '';
}
if ($request_file ~ ^(.+)$) {
set $cache_file /wp-content/cache/all/$1/index.html; #你的WP Fastest Cache缓存目录
}
# 命中缓存
if (-f $document_root$cache_file) {
rewrite ^ $cache_file last;
}
# 无法命中缓存,转给WordPress来处理
if (!-e $request_filename) {
rewrite . /index.php last;
}
}

以上代码请注意,并不是完整的规则,仅为静态化的握手。设置后,再修改下index.php重命名,已经能成功打开页面了,这样静态化就正常了,你也可以使用下面方式测试。
location /wp-content/cache/all/ { #这一行是你的WP Fastest Cache缓存文件路径
add_header Cache HIT; #添加header头,表示命中了缓存
}
我使用的规则完整代码,仅提供参考:
location / {
if (-f $request_filename) {
break;
}
set $caches 1;
set $request_file $document_uri;
set $cache_file '';
if ($request_method = POST) {
set $caches 0;
}
if ($query_string) {
set $caches 0;
}
if ($caches = 0) {
set $request_file '';
}
if ($request_file ~ ^(.+)$) {
set $cache_file /wp-content/cache/all/$1/index.html;
}
if (-f $document_root$cache_file) {
rewrite ^ $cache_file last;
}
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
顶好爱迪
