diff options
Diffstat (limited to '')
-rw-r--r-- | modules/cache/mod_cache.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/modules/cache/mod_cache.c b/modules/cache/mod_cache.c index 5cf04b966f..fad3df273c 100644 --- a/modules/cache/mod_cache.c +++ b/modules/cache/mod_cache.c @@ -1040,8 +1040,11 @@ static apr_status_t cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in) if (reason) { /* noop */ } - else if (exps != NULL && exp == APR_DATE_BAD) { - /* if a broken Expires header is present, don't cache it */ + else if (!control.s_maxage && !control.max_age && !dconf->store_expired + && exps != NULL && exp == APR_DATE_BAD) { + /* if a broken Expires header is present, don't cache it + * Unless CC: s-maxage or max-age is present + */ reason = apr_pstrcat(p, "Broken expires header: ", exps, NULL); } else if (!control.s_maxage && !control.max_age |