]> granicus.if.org Git - apache/commitdiff
* Do not add the query string again in the case that we are using the
authorRuediger Pluem <rpluem@apache.org>
Thu, 29 May 2008 19:53:30 +0000 (19:53 +0000)
committerRuediger Pluem <rpluem@apache.org>
Thu, 29 May 2008 19:53:30 +0000 (19:53 +0000)
  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

index da0e4fe5146e46f15e3d90d99ad4f0a141b3e1d2..0be4cff38c260473a6daa53c3677e8aacbb352d9 100644 (file)
@@ -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;