Return-Path: Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: (qmail 48136 invoked from network); 20 Jun 2008 21:13:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 20 Jun 2008 21:13:26 -0000 Received: (qmail 52974 invoked by uid 500); 20 Jun 2008 21:13:27 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 52913 invoked by uid 500); 20 Jun 2008 21:13:27 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 52904 invoked by uid 99); 20 Jun 2008 21:13:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Jun 2008 14:13:27 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Jun 2008 21:12:46 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C885A23889BB; Fri, 20 Jun 2008 14:12:34 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r670061 - in /httpd/httpd/trunk: CHANGES modules/mappers/mod_rewrite.c Date: Fri, 20 Jun 2008 21:12:34 -0000 To: cvs@httpd.apache.org From: tdonovan@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080620211234.C885A23889BB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tdonovan Date: Fri Jun 20 14:12:34 2008 New Revision: 670061 URL: http://svn.apache.org/viewvc?rev=670061&view=rev Log: After r649840, mod_proxy_http will no longer append a query string from r->args if "no-canon". Moved the NOESCAPE test down after PATH_INFO, and preserve the query string in r->filename if NOESCAPE (which implies "no-canon") Previously this was only done for CONNECT requests, where (r->uri == r->unparsed_uri) see mod_proxy:proxy_detect Modified: httpd/httpd/trunk/CHANGES httpd/httpd/trunk/modules/mappers/mod_rewrite.c Modified: httpd/httpd/trunk/CHANGES URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=670061&r1=670060&r2=670061&view=diff ============================================================================== --- httpd/httpd/trunk/CHANGES [utf-8] (original) +++ httpd/httpd/trunk/CHANGES [utf-8] Fri Jun 20 14:12:34 2008 @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [ When backported to 2.2.x, remove entry from this file ] + *) mod_rewrite: Preserve the query string with [proxy,noescape]. PR 45247 + [Tom Donovan] + *) mod_proxy_http: Do not forward requests with 'Expect: 100-continue' to known HTTP/1.0 servers. Return 'Expectation failed' (417) instead. [Ruediger Pluem] Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.c URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.c?rev=670061&r1=670060&r2=670061&view=diff ============================================================================== --- httpd/httpd/trunk/modules/mappers/mod_rewrite.c (original) +++ httpd/httpd/trunk/modules/mappers/mod_rewrite.c Fri Jun 20 14:12:34 2008 @@ -4453,10 +4453,6 @@ return HTTP_FORBIDDEN; } - if (rulestatus == ACTION_NOESCAPE) { - apr_table_setn(r->notes, "proxy-nocanon", "1"); - } - /* make sure the QUERY_STRING and * PATH_INFO parts get incorporated */ @@ -4464,11 +4460,16 @@ r->filename = apr_pstrcat(r->pool, r->filename, r->path_info, NULL); } - if (r->args != NULL && - r->uri == r->unparsed_uri) { - /* see proxy_http:proxy_http_canon() */ - r->filename = apr_pstrcat(r->pool, r->filename, - "?", r->args, NULL); + if (rulestatus == ACTION_NOESCAPE) { + /* make sure that mod_proxy_http doesn't canonicalize the URI, + * and preserve any (possibly qsappend'd) query string in the + * filename for mod_proxy_http:proxy_http_canon() + */ + apr_table_setn(r->notes, "proxy-nocanon", "1"); + if (r->args != NULL) { + r->filename = apr_pstrcat(r->pool, r->filename, + "?", r->args, NULL); + } } /* now make sure the request gets handled by the proxy handler */