https://bz.apache.org/bugzilla/show_bug.cgi?id=58231

--- Comment #12 from Eric Covener <cove...@gmail.com> ---
(In reply to Luca Toscano from comment #11)
> (In reply to Luca Toscano from comment #10)
> > While writing tests I discovered that the above configuration does not
> > trigger the issue when embedded in a Directory block (with proper stripping
> > of starting "/" that don't match) because afaics an internal rewrite happens
> > that clears out the outstanding Vary values.
> 
> This seems to be a long standing issue already reported by others, and
> essentially due to the ap_redirect_internal function not carrying any output
> headers already set in the "pre-ap_redirect_internal" request. The following
> patch seems to work fine with RewriteConds in Directory context:
> 
> Index: modules/http/http_request.c
> ===================================================================
> --- modules/http/http_request.c       (revision 1809976)
> +++ modules/http/http_request.c       (working copy)
> @@ -523,6 +523,7 @@
>                                                 request_rec *r) {
>      int access_status;
>      request_rec *new;
> +    const char *vary_headers;
> 
>      if (ap_is_recursion_limit_exceeded(r)) {
>          ap_die(HTTP_INTERNAL_SERVER_ERROR, r);
> @@ -581,6 +582,12 @@
>      new->headers_in      = r->headers_in;
>      new->trailers_in     = r->trailers_in;
>      new->headers_out     = apr_table_make(r->pool, 12);
> +
> +    vary_headers = apr_table_get(r->headers_out, "Vary");
> +    if(vary_headers) {
> +        apr_table_setn(new->headers_out, "Vary", vary_headers);
> +    }
> +
>      if (ap_is_HTTP_REDIRECT(new->status)) {
>          const char *location = apr_table_get(r->headers_out, "Location");
>          if (location)

Doesn't look so safe as a behavior change. It's probably sensible in this
scenario but I could see this breaking people.  Could rewrite add the varies
after the internal redirect?

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to