On 12/04/2010 11:33 PM, [email protected] wrote: > Author: covener > Date: Sat Dec 4 22:33:46 2010 > New Revision: 1042255 > > URL: http://svn.apache.org/viewvc?rev=1042255&view=rev > Log: > PR 39313: allow the user to configure which rules come first when RewriteRules > are merged with RewriteOptions Inherit. > > Submitted By: Jérôme Grandjanny <jerome.grandjanny cea.fr> > Reviewed By: covener > > Modified: > httpd/httpd/trunk/CHANGES > httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml > httpd/httpd/trunk/modules/mappers/mod_rewrite.c > > Modified: httpd/httpd/trunk/CHANGES
> Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.c?rev=1042255&r1=1042254&r2=1042255&view=diff > ============================================================================== > --- httpd/httpd/trunk/modules/mappers/mod_rewrite.c (original) > +++ httpd/httpd/trunk/modules/mappers/mod_rewrite.c Sat Dec 4 22:33:46 2010 > @@ -187,6 +187,7 @@ static const char* really_last_key = "re > > #define OPTION_NONE 1<<0 > #define OPTION_INHERIT 1<<1 > +#define OPTION_INHERIT_BEFORE 1<<2 > > #ifndef RAND_MAX > #define RAND_MAX 32767 > @@ -2745,6 +2746,18 @@ static void *config_server_merge(apr_poo > a->rewriterules = apr_array_append(p, overrides->rewriterules, > base->rewriterules); > } > + else if (a->options & OPTION_INHERIT_BEFORE) { > + /* > + * local directives override > + * and anything else is inherited (preserving order) > + */ > + a->rewritemaps = apr_hash_overlay(p, base->rewritemaps, > + overrides->rewritemaps); > + a->rewriteconds = apr_array_append(p, base->rewriteconds, > + overrides->rewriteconds); > + a->rewriterules = apr_array_append(p, base->rewriterules, > + overrides->rewriterules); > + } This means that the local rules come after the global rules in the array. Doesn't this mean that they get applied after the global rules? Regards Rüdiger
