Commit 66cb25a8 authored by Ruediger Pluem's avatar Ruediger Pluem
Browse files

* 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
parent 2782f79a
Loading
Loading
Loading
Loading
+3 −0
Changes for CHANGES: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -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 <arjones simultan.dyndns.org>]
+1 −1
Changes for modules/cache/cache_storage.c: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -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;
}
+1 −1
Changes for modules/cache/mod_cache.c: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -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)
         */