Hi Peff, On Mon, 9 May 2016, Jeff King wrote: > On Mon, May 09, 2016 at 08:18:52AM +0200, Johannes Schindelin wrote: > > > +# Apache 2.2 does not understand <RequireAll>, so we use RewriteCond. > > +# And as RewriteCond unfortunately lacks "not equal" matching, we use this > > +# ugly trick to fail *unless* the two headers are present. > > +RewriteCond %{HTTP:x-magic-one} =abra > > +RewriteCond %{HTTP:x-magic-two} =cadabra > > +RewriteRule ^/smart_headers/.* - [L] > > +RewriteRule ^/smart_headers/.* - [F] > > + > > Thanks, this is the magic that eluded me earlier. I had to look up the > flags, so for any observers in the same boat, this works because: > > - the '[L]' flag says "stop doing any more rewrite rules"; it triggers > only when the RewriteConds above match > > - the '[F]' flag says "return 403 Forbidden"; it triggers always, > because after a RewriteRule, all RewriteConds are reset > > I'm sure that is all apparent to somebody who is familiar with Apache > config, but I think that does not include most people on this project. I > dunno if it is worth a comment here or in the commit message. Oh, you're absolutely correct, I should have described this better. It took me quite a couple of iterations to get it right, after all. How about this: As RewriteCond does not allow testing for *non*-matches, we simply match the desired case first and let it pass by marking the RewriteRule as '[L]' ("last rule, do not process any other matching RewriteRules after this"), and then have another RewriteRule that matches all other cases and lets them fail via '[F]' ("fail"). Good enough? Ciao, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html