From: Ruediger Pluem Date: Thu, 29 May 2008 19:53:30 +0000 (+0000) Subject: * Do not add the query string again in the case that we are using the X-Git-Tag: 2.3.0~565 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c3242b9c5c9e7f1b8fabb6fe006075bc6d1db3be;p=apache * Do not add the query string again in the case that we are using the unparsed uri. PR: 44803 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@661452 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy_balancer.c b/modules/proxy/mod_proxy_balancer.c index da0e4fe514..0be4cff38c 100644 --- a/modules/proxy/mod_proxy_balancer.c +++ b/modules/proxy/mod_proxy_balancer.c @@ -51,20 +51,17 @@ static int proxy_balancer_canon(request_rec *r, char *url) return HTTP_BAD_REQUEST; } /* now parse path/search args, according to rfc1738 */ - /* N.B. if this isn't a true proxy request, then the URL _path_ - * has already been decoded. True proxy requests have r->uri - * == r->unparsed_uri, and no others have that property. - */ - if (r->uri == r->unparsed_uri) { - search = strchr(url, '?'); - if (search != NULL) - *(search++) = '\0'; - } - else - search = r->args; + search = NULL; /* process path */ - path = ap_proxy_canonenc(r->pool, url, strlen(url), enc_path, 0, r->proxyreq); + if (apr_table_get(r->notes, "proxy-nocanon")) { + path = url; /* this is the raw path */ + } + else { + path = ap_proxy_canonenc(r->pool, url, strlen(url), enc_path, 0, + r->proxyreq); + search = r->args; + } if (path == NULL) return HTTP_BAD_REQUEST;