From c3242b9c5c9e7f1b8fabb6fe006075bc6d1db3be Mon Sep 17 00:00:00 2001 From: Ruediger Pluem Date: Thu, 29 May 2008 19:53:30 +0000 Subject: [PATCH] * 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 --- modules/proxy/mod_proxy_balancer.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) 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; -- 2.50.1