nginx/lnmp下WP Super Cache的Rewrite规则

想在nginx/lnmp下使用著名的WP Super Cache缓存插件吗?参照此篇博文,你就可以轻松的实现nginx/lnmp下完美的使用WP Super Cache高效率的缓存插件了。

闲吧的DS VPS之前用的是LNMP环境,即(Linux下的Nginx、MySQL、PHP),在上面的网站用的是wordpress程序。之前老出现502错误,后来给解决了,具体看闲吧写的另一篇博文lnmp 502错误终极解决办法汇总

闲吧资源站之前一直用WP Super Cache,觉得还不错。所以想在nginx/lnmp环境下使用WP Super Cache插件,但大家都知道WP Super Cache需要.htaccess规则,而nginx/lnmp下不支持.htaccess,需要转换为nginx/lnmp下的Rewrite规则。闲吧经过在互联网上疯狂的搜寻,最好找到了Rewrite规则。通过在本地的调试发现,WP Super Cache工作的很正常。然后在VPS上去运行,发现也很正常。好东西当然要分析给各位了,哈哈。nginx/lnmp下的Rewrite规则如下:

location /
{
autoindex off;
set $wp_super_cache_file '';
set $wp_super_cache_uri $request_uri;
if ( $request_method = POST )
{
set $wp_super_cache_uri '';
}
if ( $query_string )
{
set $wp_super_cache_uri '';
}
if ( $http_cookie ~* "comment_author_|WordPress|wp-postpass_" )
{
set $wp_super_cache_uri '';
}
if ( $wp_super_cache_uri ~ ^(.+)$ )
{
set $wp_super_cache_file /wp-content/cache/supercache/$http_host/$1index.html;
}
if ( -f $document_root$wp_super_cache_file )
{
rewrite ^(.*)$ $wp_super_cache_file break;
}
if (-f $request_filename)
{
expires 30d;
break;
}
if (!-e $request_filename)
{
rewrite ^(.+)$ /index.php last;
}
}

如果你是lnmp的环境,直接用以上内容覆盖/usr/local/nginx/conf/目录下的wordpress.conf文件的内容就行了。当然,你原来的wordpress固定连接也会正常的。

另外值得注意的是,如果你的WP Super Cache使用的是Use PHP to serve cache files,那么以上的规则就不要那么麻烦了,只在原wordpress.conf文件后添加以下代码就行了。

location{
if (!-e $request_filename) {
rewrite . /index.php last;
}
}

如果你用的是非lnmp环境,但使用的是nginx,那么参照如下步骤:

  1. 在/usr/local/nginx/conf下新建wordpress_001.conf文件,输入以上Rewrite规则并保存。
  2. 编辑你的wordpress域名虚拟主机配置文件,如xianba.net.conf,在最后面加上
  3. include wordpress_001.conf;

  4. 重启你的nginx。

希望能帮到各位网友。

版权声明:
作者:闲吧
链接:https://www.xianba.net/2146.html
来源:闲吧资源站
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>