安静
PHP技术博客

140829 worpdress WPSuperCache之Nginx设置[转载]

WP Super Cache 米饭个人是比较喜欢的,因为设置起来比 W3TC 要简单的多了,不过捏矛盾总是在的,折腾 VPS 的玩 Nginx 居多,不过WP Super Cache 中最好的缓存模式mod_rewrite偏偏只对支持.htaccess友好啊,不过现在么,时代发展了,口黑口黑。

设置规则

修改你的 .conf 文件,一般是/usr/local/nginx/conf/wordpress.conf文件。不要原来的拉,直接替换成新的!

注: set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html; 必须是实际路径;如果固定链接中含有index.php,去掉。

location / {
          if (-f $request_filename) {
              break;
          }
          set $supercache_file '';
          set $supercache_uri $request_uri;
          set $supercache 1;
          set $ihttp_host '';
          if ($request_method = POST) {
              set $supercache 0;
          }
          set $qs 0;
          if ($query_string) {
              set $qs 1;
          }
          if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {
              set $qs 0;
              set $supercache_uri $document_uri;
          }
          if ($qs = 1) {
              set $supercache 0;
          }
          # 针对已登录用户(发表过评论),可以不静态化。在访问量高峰时可注释掉
          if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
              set $supercache 0;
          }
          #结束
          if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
               set $ihttp_host '-mobile';
          }
          if ($supercache = 0) {
               set $supercache_uri '';
          }
          if ($supercache_uri ~ ^(.+)$) {
              set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
          }
          if (-f $document_root$supercache_file) {
              #rewrite ^(.*)$ $supercache_file break;
              rewrite ^ $supercache_file last;
          }
          if (!-e $request_filename) {
              rewrite . /index.php last;
          }
}

设置插件

这里是重点,因为规则也不是非常的全,所以我们能使用的功能仅有一下四项(意思就是除了这四项都不能选择,推荐选项也不能):

  • mod_rewrite 缓存模式(必选)
  • 当某页面有新评论时,只刷新该页面的缓存(必选)
  • “缓存重建”和“移动设备支持”(可选)
  • 当有新文章或页面的发布或更新时清除之前的缓存文件(可选)
  • 将底部的垃圾回收期缓存超时时间更改为0秒:

其他

重启你的 VPS 。

不过,

碍眼不?将下面的代码加入 functions.php 就好了

add_filter('got_rewrite', 'nginx_has_rewrites');
function nginx_has_rewrites() {
    return true;
}
赞(0) 打赏
未经允许不得转载:AJ's Blog » 140829 worpdress WPSuperCache之Nginx设置[转载]
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏