On 7/17/23 5:52 PM, minf...@apache.org wrote:
> Author: minfrin
> Date: Mon Jul 17 15:52:33 2023
> New Revision: 1911068
> 
> URL: http://svn.apache.org/viewvc?rev=1911068&view=rev
> Log:
> Add patch proposal.
> 
> Added:
>     httpd/httpd/patches/2.4.x/alias-preserve-path.diff
> 
> Added: httpd/httpd/patches/2.4.x/alias-preserve-path.diff
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/patches/2.4.x/alias-preserve-path.diff?rev=1911068&view=auto
> ==============================================================================
> --- httpd/httpd/patches/2.4.x/alias-preserve-path.diff (added)
> +++ httpd/httpd/patches/2.4.x/alias-preserve-path.diff Mon Jul 17 15:52:33 
> 2023
> @@ -0,0 +1,166 @@
> +Index: modules/mappers/mod_alias.c
> +===================================================================
> +--- modules/mappers/mod_alias.c      (revision 1909136)
> ++++ modules/mappers/mod_alias.c      (revision 1909137)
> +@@ -59,6 +59,7 @@
> +     unsigned int redirect_set:1;
> +     apr_array_header_t *redirects;
> +     const ap_expr_info_t *alias;
> ++    const char *alias_fake;
> +     char *handler;
> +     const ap_expr_info_t *redirect;
> +     int redirect_status;                /* 301, 302, 303, 410, etc */
> +@@ -113,6 +114,7 @@
> +     a->redirects = apr_array_append(p, overrides->redirects, 
> base->redirects);
> + 
> +     a->alias = (overrides->alias_set == 0) ? base->alias : overrides->alias;
> ++    a->alias_fake = (overrides->alias_set == 0) ? base->alias_fake : 
> overrides->alias_fake;
> +     a->handler = (overrides->alias_set == 0) ? base->handler : 
> overrides->handler;
> +     a->alias_set = overrides->alias_set || base->alias_set;
> + 
> +@@ -438,6 +443,17 @@
> +             return PREGSUB_ERROR;
> +         }
> + 
> ++        if (dirconf->alias_fake) {
> ++            int l;
> ++
> ++            l = alias_matches(r->uri, dirconf->alias_fake);
> ++
> ++            if (l > 0) {
> ++                ap_set_context_info(r, dirconf->alias_fake, found);
> ++                found = apr_pstrcat(r->pool, found, r->uri + l, NULL);
> ++            }
> ++        }
> ++
> +         if (dirconf->handler) { /* Set handler, and leave a note for 
> mod_cgi */
> +             r->handler = dirconf->handler;
> +             apr_table_setn(r->notes, "alias-forced-type", r->handler);

Doesn't this miss the changes to add_alias from r1909137?
I don't see how ->alias_fake is et by any directive.

Regards

RĂ¼diger

Reply via email to