rse 98/03/27 07:43:55
Modified: . STATUS
src CHANGES
src/modules/standard mod_rewrite.c
Log:
Adjust the proxy pass-through feature in mod_rewrite to
fit the requirements of mod_proxy again.
Revision Changes Path
1.225 +1 -0 apache-1.3/STATUS
Index: STATUS
===================================================================
RCS file: /export/home/cvs/apache-1.3/STATUS,v
retrieving revision 1.224
retrieving revision 1.225
diff -u -r1.224 -r1.225
--- STATUS 1998/03/27 14:22:36 1.224
+++ STATUS 1998/03/27 15:43:48 1.225
@@ -115,6 +115,7 @@
* Dean's fix for making work the `HostnameLookups Off'
* Dean's mark of a few bitfields as signed to ensure correct code.
* Dean's changes to scoreboard defs which helps gcc generate better code.
+ * Ralf's fix for QUERY_STRING and the proxy pass-through of mod_rewrite
Available Patches:
1.738 +4 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.737
retrieving revision 1.738
diff -u -r1.737 -r1.738
--- CHANGES 1998/03/26 21:20:46 1.737
+++ CHANGES 1998/03/27 15:43:49 1.738
@@ -1,5 +1,9 @@
Changes with Apache 1.3b6
+ *) Fix the proxy pass-through feature of mod_rewrite for the case of
+ existing QUERY_STRING now that mod_proxy was recently changed because of
+ the new URL parsing stuff. [Ralf S. Engelschall]
+
*) A few changes to scoreboard definitions which helps gcc generate
better code. [Dean Gaudet]
1.94 +10 -9 apache-1.3/src/modules/standard/mod_rewrite.c
Index: mod_rewrite.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_rewrite.c,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -r1.93 -r1.94
--- mod_rewrite.c 1998/03/13 19:20:42 1.93
+++ mod_rewrite.c 1998/03/27 15:43:53 1.94
@@ -1039,10 +1039,11 @@
/* make sure the QUERY_STRING and
* PATH_INFO parts get incorporated
*/
- r->filename = pstrcat(r->pool, r->filename,
- r->path_info ? r->path_info : "",
- r->args ? "?" : NULL, r->args,
- NULL);
+ if (r->path_info != NULL)
+ r->filename = 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 = pstrcat(r->pool, r->filename, "?", r->args,
NULL);
/* now make sure the request gets handled by the proxy handler */
r->proxyreq = 1;
@@ -1281,12 +1282,12 @@
/* make sure the QUERY_STRING and
* PATH_INFO parts get incorporated
+ * (r->path_info was already appended by the
+ * rewriting engine because of the per-dir context!)
*/
- r->filename = pstrcat(r->pool, r->filename,
- /* r->path_info was already
- * appended by the rewriting engine
- * because of the per-dir context! */
- r->args ? "?" : NULL, r->args, NULL);
+ if (r->args != NULL &&
+ r->uri == r->unparsed_uri /* see
proxy_http:proxy_http_canon() */)
+ r->filename = pstrcat(r->pool, r->filename, "?", r->args,
NULL);
/* now make sure the request gets handled by the proxy handler */
r->proxyreq = 1;