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,那么参照如下步骤:
- 在/usr/local/nginx/conf下新建wordpress_001.conf文件,输入以上Rewrite规则并保存。
- 编辑你的wordpress域名虚拟主机配置文件,如xianba.net.conf,在最后面加上
- 重启你的nginx。
include wordpress_001.conf;
希望能帮到各位网友。
共有 0 条评论