This patch entirely blows up internal redirection and subrequests,
I would expect.
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, September 03, 2001 8:38 PM
Subject: cvs commit: httpd-2.0/server util_script.c
> rbb 01/09/03 18:38:01
>
> Modified: . CHANGES
> server util_script.c
> Log:
> Back out the 1.45 change to util_script.c. This change made
> us set the environment variable REQUEST_URI to the redirected
> URI, instead of the originally requested URI.
>
> PR: 7580
> Submitted by: Taketo Kabe <[EMAIL PROTECTED]>
>
> Revision Changes Path
> 1.355 +5 -0 httpd-2.0/CHANGES
>
> Index: CHANGES
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/CHANGES,v
> retrieving revision 1.354
> retrieving revision 1.355
> diff -u -r1.354 -r1.355
> --- CHANGES 2001/09/02 08:43:23 1.354
> +++ CHANGES 2001/09/04 01:38:00 1.355
> @@ -1,5 +1,10 @@
> Changes with Apache 2.0.26-dev
>
> + *) Back out the 1.45 change to util_script.c. This change made
> + us set the environment variable REQUEST_URI to the redirected
> + URI, instead of the originally requested URI.
> + [Taketo Kabe <[EMAIL PROTECTED]>]
> +
> *) Make mod_include do lazy evaluation of potentially expensive to
> compute variables. [Brian Pane <[EMAIL PROTECTED]>]
>
>
>
>
> 1.62 +29 -1 httpd-2.0/server/util_script.c
>
> Index: util_script.c
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/server/util_script.c,v
> retrieving revision 1.61
> retrieving revision 1.62
> diff -u -r1.61 -r1.62
> --- util_script.c 2001/08/23 21:16:05 1.61
> +++ util_script.c 2001/09/04 01:38:01 1.62
> @@ -313,6 +313,34 @@
> return lu;
> }
>
> +/* Obtain the Request-URI from the original request-line, returning
> + * a new string from the request pool containing the URI or "".
> + */
> +static char *original_uri(request_rec *r)
> +{
> + char *first, *last;
> +
> + if (r->the_request == NULL) {
> + return (char *) apr_pcalloc(r->pool, 1);
> + }
> +
> + first = r->the_request; /* use the request-line */
> +
> + while (*first && !apr_isspace(*first)) {
> + ++first; /* skip over the method */
> + }
> + while (apr_isspace(*first)) {
> + ++first; /* and the space(s) */
> + }
> +
> + last = first;
> + while (*last && !apr_isspace(*last)) {
> + ++last; /* end at next whitespace */
> + }
> +
> + return apr_pstrndup(r->pool, first, last - first);
> +}
> +
> AP_DECLARE(void) ap_add_cgi_vars(request_rec *r)
> {
> apr_table_t *e = r->subprocess_env;
> @@ -321,7 +349,7 @@
> apr_table_setn(e, "SERVER_PROTOCOL", r->protocol);
> apr_table_setn(e, "REQUEST_METHOD", r->method);
> apr_table_setn(e, "QUERY_STRING", r->args ? r->args : "");
> - apr_table_setn(e, "REQUEST_URI", r->unparsed_uri);
> + apr_table_setn(e, "REQUEST_URI", original_uri(r));
>
> /* Note that the code below special-cases scripts run from includes,
> * because it "knows" that the sub_request has been hacked to have the
>
>
>
>