平台开发中,欢迎参与测试。你可以在 QQ群: 12370907 中与我们交流,或是直接在 社区发帖

    WordPress WP-Super-Cache 缓存插件 Nginx 规则

    • 耗子
      楼主
      耗子
      楼主
      耗子
      楼主

      WP-Super-Cache 作为 WordPress 的老牌静态缓存插件,它在 WordPress.Org 的一个角落一直有一份 Nginx 伪静态规则(Nginx – WordPress.org Forums)。

      配置后可绕过 PHP 直接由 Nginx 返回 HTML 页面,能大大提高网站的并发能力和速度。

      这份规则如下,替换 WordPress 原本的伪静态规则即可(已修改同时兼容 HTTPS/HTTP,并增加是否命中的 Nginx-Static 头)。

      # WP Super Cache 规则
      
      set $cache_uri $request_uri;
      set $nginx_static 'BYPASS For File';
      
      # POST 请求不读取缓存
      if ($request_method = POST)
      {
          set $cache_uri 'null cache';
          set $nginx_static 'BYPASS For POST';
      }
      
      # 查询请求不读取缓存
      if ($query_string != "")
      {
          set $cache_uri 'null cache';
          set $nginx_static 'BYPASS For Query';
      }
      
      # 特定页面不读取缓存
      if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(App|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap (_index)?.xml|[a-z0-9_-]+-sitemap ([0-9]+)?.xml)")
      {
          set $cache_uri 'null cache';
          set $nginx_static 'BYPASS For URL';
      }
      
      # 特定 Cookie 不读取缓存
      if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in|woocommerce_items_in_cart|woocommerce_cart_hash|wptouch_switch_toogle")
      {
          set $cache_uri 'null cache';
          set $nginx_static 'BYPASS For Cookie';
      }
      
      # 判断缓存是否存在
      if (-f $document_root/wp-content/cache/supercache/$http_host/$cache_uri/index-https.html)
      {
          set $nginx_static 'HIT';
      }
      if (-f $document_root/wp-content/cache/supercache/$http_host/$cache_uri/index.html)
      {
          set $nginx_static 'HIT';
      }
      
      location /
      {
          try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php?$args;
      }
      
      add_header Nginx-Static $nginx_static;
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;
正在查看 0 条回复
  • 哎呀,回复话题必需登录。

加入 WePublish 社区论坛,参与知识分享与交流
登录进行评论