PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.19.6
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.19.6
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / advanced-cache.php
nitropack Last commit date
assets 1 month ago classes 2 weeks ago languages 1 month ago nitropack-sdk 2 weeks ago view 2 weeks ago advanced-cache.php 1 year ago batcache-compat.php 1 year ago constants.php 2 weeks ago functions.php 2 weeks ago helpers.php 1 year ago main.php 2 weeks ago readme.txt 2 weeks ago uninstall.php 7 months ago
advanced-cache.php
67 lines
1 <?php
2
3 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
4
5 if (strpos($_SERVER["REQUEST_URI"], "nitroHealthcheck") !== false) {
6 // This healthcheck is used to quickly check test whether the PHP application is able to handle the requests
7 // Mainly used to check for errors after .htaccess has been modified
8 echo "Healthy";
9 exit;
10 }
11
12 $nitropack_functions_file = '/*NITROPACK_FUNCTIONS_FILE*/';
13 $nitropack_abspath = '/*NITROPACK_ABSPATH*/';
14
15 // We need the ABSPATH check in order to verify that the functions file which we are about to load belongs to the expected WP installation.
16 // Otherwise issues may occur when a site is being duplicated in a subdir on the same server.
17 if (file_exists($nitropack_functions_file) && ABSPATH == $nitropack_abspath) {
18 define( 'NITROPACK_ADVANCED_CACHE', true);
19 define( 'NITROPACK_ADVANCED_CACHE_VERSION', '/*NP_VERSION*/');
20 define( 'NITROPACK_LOGGED_IN_COOKIE', '/*LOGIN_COOKIES*/' );
21 require_once $nitropack_functions_file;
22 }
23
24 if (defined("NITROPACK_VERSION") && defined("NITROPACK_ADVANCED_CACHE_VERSION") && NITROPACK_VERSION == NITROPACK_ADVANCED_CACHE_VERSION && nitropack_is_dropin_cache_allowed()) {
25 nitropack_handle_request("drop-in");
26 $nitro = get_nitropack_sdk();
27
28 if (null !== $nitro) {
29 $np_siteConfig = nitropack_get_site_config();
30 if ( !empty($np_siteConfig["alwaysBuffer"]) || ($nitro->isAJAXRequest() && $nitro->isAllowedAJAX()) ) {
31 define( 'NITROPACK_IS_BUFFERING', true );
32 ob_start(function($buffer) use (&$nitro) {
33
34 $respHeaders = headers_list();
35 $contentType = NULL;
36 foreach ($respHeaders as $respHeader) {
37 if (stripos(trim($respHeader), 'Content-Type:') === 0) {
38 $contentType = $respHeader;
39 }
40 }
41
42 // If the content type header was detected and it's value does not contain 'text/html',
43 // don't attach the beacon script.
44 $contentHeaderIsCorrect = true;
45 if ($contentType !== NULL && stripos($contentType, 'text/html') === false) {
46 $contentHeaderIsCorrect = false;
47 }
48
49 if ($contentHeaderIsCorrect && !preg_match("/<html.*?\s(amp|⚡)(\s|=|>)/", $buffer)) {
50 if (nitropack_passes_cookie_requirements() && nitropack_passes_page_requirements(false) && !defined("NITROPACK_BEACON_PRINTED")) {
51 define("NITROPACK_BEACON_PRINTED", true);
52 $buffer = str_replace("</body", nitropack_get_beacon_script() . "</body", $buffer);
53 }
54 }
55
56
57 if ($nitro->isAJAXRequest() && $nitro->isAllowedAJAX()) {
58 $nitro->pageCache->setContent($buffer, []);
59 }
60 return $buffer;
61 }, 0, PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE);
62 } else {
63 define( 'NITROPACK_IS_BUFFERING', false );
64 }
65 }
66 }
67