diff --git a/src/Control/Middleware/HTTPCacheControlMiddleware.php b/src/Control/Middleware/HTTPCacheControlMiddleware.php index 048303eb1..572e6fb2b 100644 --- a/src/Control/Middleware/HTTPCacheControlMiddleware.php +++ b/src/Control/Middleware/HTTPCacheControlMiddleware.php @@ -26,6 +26,8 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable const STATE_DISABLED = 'disabled'; + const STATE_DEFAULT = 'default'; + /** * Generate response for the given request * @@ -90,6 +92,9 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable self::STATE_ENABLED => [ 'must-revalidate' => true, ], + self::STATE_DEFAULT => [ + 'no-cache' => true, + ], ]; /** @@ -98,7 +103,7 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable * @config * @var string */ - protected static $defaultState = self::STATE_DISABLED; + private static $defaultState = self::STATE_DEFAULT; /** * Current state @@ -766,14 +771,9 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable } // Errors disable cache (unless some errors are cached intentionally by usercode) - if ($response->isError()) { + if ($response->isError() || $response->isRedirect()) { // Even if publicCache(true) is specified, errors will be uncacheable $this->disableCache(true); } - - // Don't cache redirects - if ($response->isRedirect()) { - $this->disableCache(true); - } } }