| @@ -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 | } |