]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) mod_rewrite: Fix mod_rewrite's support of the [P] option to send
authorPaul J. Reder <rederpj@apache.org>
Tue, 30 Sep 2003 17:41:58 +0000 (17:41 +0000)
committerPaul J. Reder <rederpj@apache.org>
Tue, 30 Sep 2003 17:41:58 +0000 (17:41 +0000)
      rewritten request using "proxy:". The code was adding multiple "proxy:"
      fields in the rewritten URI. PR: 13946. [Eider Oliveira <eider@bol.com.br>]

Reviewed by: Paul J. Reder, Andre Malo, Jeff Trawick, and Roy T. Fielding.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/APACHE_2_0_BRANCH@101358 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/mappers/mod_rewrite.c

diff --git a/CHANGES b/CHANGES
index 6fbf68ed83608956fce2afa61042d16430c10448..024c91cfa7b991054f9fdefbb36338dbd1a52af9 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,9 @@
 Changes with Apache 2.0.48
 
+  *) mod_rewrite: Fix mod_rewrite's support of the [P] option to send
+      rewritten request using "proxy:". The code was adding multiple "proxy:"
+      fields in the rewritten URI. PR: 13946. [Eider Oliveira <eider@bol.com.br>]
+
   *) cache_util: Fix ap_check_cache_freshness to check max_age, smax_age, and
      expires as directed in RFC 2616. [Thomas Castelle tcastelle@generali.fr]
 
diff --git a/STATUS b/STATUS
index db42873e972a9825d5c9566c711d826feead38fa..bd2d115687dd4f52c5bfecf91520f775ca62bf6f 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -1,5 +1,5 @@
 APACHE 2.0 STATUS:                                              -*-text-*-
-Last modified at [$Date: 2003/09/29 21:09:46 $]
+Last modified at [$Date: 2003/09/30 17:41:58 $]
 
 Release:
 
@@ -78,15 +78,6 @@ PATCHES TO PORT FROM 2.1
       http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_mem_cache.c.diff?r1=1.93&r2=1.94
       +1: rederpj, fielding, trawick
 
-    * mod_rewrite.c: Fix mod_rewrite's support of the [P] option to send
-      rewritten request using "proxy:". The code was adding multiple "proxy:"
-      fields in the rewritten URI. PR: 13946.
-      http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.153&r2=1.154
-      http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.154&r2=1.155
-      http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.156&r2=1.157
-      http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.173&r2=1.174
-      +1: rederpj, nd, trawick, fielding
-
     * Replace some of the mutex locking in the worker MPM with
       atomic operations for higher concurrency.
       server/mpm/worker/fdqueue.c 1.24, 1.25
index ec73642f1fd53a355245dfec0075ac7c723009cc..63d17632b6e97c433c0e1564959a6206f3c12e29 100644 (file)
@@ -1107,6 +1107,7 @@ static void init_child(apr_pool_t *p, server_rec *s)
 static int hook_uri2file(request_rec *r)
 {
     rewrite_server_conf *conf;
+    const char *saved_rulestatus;
     const char *var;
     const char *thisserver;
     char *thisport;
@@ -1185,19 +1186,34 @@ static int hook_uri2file(request_rec *r)
                       thisurl, NULL);
     apr_table_setn(r->subprocess_env, ENVVAR_SCRIPT_URI, var);
 
-    /* if filename was not initially set,
-     * we start with the requested URI
-     */
-    if (r->filename == NULL) {
-        r->filename = apr_pstrdup(r->pool, r->uri);
-        rewritelog(r, 2, "init rewrite engine with requested uri %s",
-                   r->filename);
+    if (!(saved_rulestatus = apr_table_get(r->notes,"mod_rewrite_rewritten"))) {
+        /* if filename was not initially set,
+         * we start with the requested URI
+         */
+        if (r->filename == NULL) {
+            r->filename = apr_pstrdup(r->pool, r->uri);
+            rewritelog(r, 2, "init rewrite engine with requested uri %s",
+                       r->filename);
+        }
+        else {
+            rewritelog(r, 2, "init rewrite engine with passed filename %s."
+                       " Original uri = %s", r->filename, r->uri);
+        }
+
+        /*
+         *  now apply the rules ...
+         */
+        rulestatus = apply_rewrite_list(r, conf->rewriterules, NULL);
+        apr_table_set(r->notes,"mod_rewrite_rewritten",
+                      apr_psprintf(r->pool,"%d",rulestatus));
+    }
+    else {
+        rewritelog(r, 2,
+                   "uri already rewritten. Status %s, Uri %s, r->filename %s",
+                   saved_rulestatus, r->uri, r->filename);
+        rulestatus = atoi(saved_rulestatus);
     }
 
-    /*
-     *  now apply the rules ...
-     */
-    rulestatus = apply_rewrite_list(r, conf->rewriterules, NULL);
     if (rulestatus) {
         unsigned skip;