PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.3.6
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.3.6
1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.2.4 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 All 32 releases
← All changes | includes/modules/Health/HealthModule.php +11 -2 1.3.5 → 1.3.6 View file →
@@ -147,9 +147,16 @@
147 147 // "toggle Enable Cache off and on" cannot reinstall anything —
148 148 // the same condition suppresses the write and auto_heal() strips
149 149 // the block again on the next admin load. Explain the real cause.
150 150 $block_reason = \XSpeed\Cache::static_rewrite_block_reason();
151 - if ( 'no_mod_headers' === $block_reason ) {
151 + if ( 'litespeed_dropin' === $block_reason ) {
152 + // The intended LiteSpeed default (#509) — 'good', not a nag:
153 + // hits are visible and counted, and the faster path is a
154 + // deliberate opt-in, not a missing config.
155 + $result['label'] = __( 'xSpeed is serving cache hits through PHP (LiteSpeed)', 'xspeed' );
156 + $result['status'] = 'good';
157 + $result['description'] = '<p>' . esc_html__( 'Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php), so every hit is visible and counted. LiteSpeed\'s .htaccess engine cannot tag or log statically served files, so this is the default. To serve hits straight from the web server with no PHP (at the cost of that tagging and counting), turn on LiteSpeed Static Fast Path in xSpeed\'s Cache settings.', 'xspeed' ) . '</p>';
158 + } elseif ( 'no_mod_headers' === $block_reason ) {
152 159 $result['label'] = __( 'xSpeed is serving cache hits through PHP', 'xspeed' );
153 160 $result['status'] = 'recommended';
154 161 $result['description'] = '<p>' . esc_html__( 'Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php). The faster .htaccess fast path is off because Apache\'s mod_headers module is not loaded, without which a static hit could not be tagged or counted. Enable mod_headers (a2enmod headers on Debian/Ubuntu, then restart Apache) to shave roughly 20-30ms off each cache hit.', 'xspeed' ) . '</p>';
155 162 } elseif ( 'mobile_separate' === $block_reason ) {
@@ -155,9 +162,11 @@
155 162 } elseif ( 'mobile_separate' === $block_reason ) {
156 163 $result['label'] = __( 'xSpeed static rewrite is off (Separate Mobile Cache)', 'xspeed' );
157 164 $result['status'] = 'recommended';
158 165 $result['description'] = '<p>' . esc_html__( 'Separate Mobile Cache is on, so cache hits are served by the PHP drop-in to keep per-device HTML correct. Turn Separate Mobile Cache off if your site serves the same HTML to every device to regain the faster static path.', 'xspeed' ) . '</p>';
159 - } elseif ( \XSpeed\Server::APACHE === $server_type && ! \XSpeed\Cache::rewrite_installed() ) {
166 + } elseif ( '' === $block_reason && ! \XSpeed\Cache::rewrite_installed() ) {
167 + // Apache, or LiteSpeed with the Static Fast Path opt-in on
168 + // (#509) — either way the block SHOULD be there and is not.
160 169 $result['label'] = __( 'xSpeed .htaccess rewrite block is missing', 'xspeed' );
161 170 $result['status'] = 'recommended';
162 171 $result['description'] = '<p>' . esc_html__( 'Without the static-rewrite block, cache hits go through the PHP drop-in (~85ms TTFB) instead of the web server (~5-15ms). Toggle Enable Cache off and on in xSpeed to reinstall the block.', 'xspeed' ) . '</p>';
163 172 }