From: Ruediger Pluem Date: Sat, 18 Nov 2006 22:17:33 +0000 (+0000) Subject: * Use the query string stored in r->parsed_uri.query instead of r->args X-Git-Tag: 2.3.0~2017 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e6a844c031070d5e200dad8b21d23a4982b4ca19;p=apache * Use the query string stored in r->parsed_uri.query instead of r->args as r->args could have been changed (e.g. via mod_rewrite) after the quick handler hook. This causes resources to be stored under a key, where they cannot be fetched again in the quick handler. PR: 40805 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@476625 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index aee5c7f6b3..eb297692a0 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) mod_cache: Correctly cache objects whose URL query string has been + modified by mod_rewrite. PR 40805. [Ruediger Pluem] + *) mod_proxy: Add a missing assignment in an error checking code path. PR 40865. [Andrew Rucker Jones ] diff --git a/modules/cache/cache_storage.c b/modules/cache/cache_storage.c index 833520599e..460fa3dfd6 100644 --- a/modules/cache/cache_storage.c +++ b/modules/cache/cache_storage.c @@ -427,7 +427,7 @@ apr_status_t cache_generate_key_default(request_rec *r, apr_pool_t* p, /* Key format is a URI */ *key = apr_pstrcat(p, scheme, "://", hostname, port_str, - r->parsed_uri.path, "?", r->args, NULL); + r->parsed_uri.path, "?", r->parsed_uri.query, NULL); return APR_SUCCESS; } diff --git a/modules/cache/mod_cache.c b/modules/cache/mod_cache.c index 9790915804..c2483a958f 100644 --- a/modules/cache/mod_cache.c +++ b/modules/cache/mod_cache.c @@ -446,7 +446,7 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in) /* if a Expires header is in the past, don't cache it */ reason = "Expires header already expired, not cacheable"; } - else if (r->args && exps == NULL) { + else if (r->parsed_uri.query && exps == NULL) { /* if query string present but no expiration time, don't cache it * (RFC 2616/13.9) */