https://bz.apache.org/bugzilla/show_bug.cgi?id=66672
Eric Covener <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO --- Comment #4 from Eric Covener <[email protected]> --- (In reply to Frank Meier from comment #3) > Hi Eric, > unfortunately the revised patch still leads to a regression in our test > suite. > > With RewriteRule: > `RewriteRule ^/mod_rewrite_before(.*)$ /mod_rewrite_after$1? [QSA,QSL]` > > and a request with encoded ? (%3f) in the path: > `curl 'http://localhost/mod_rewrite_before/%3fxxx?param=123'` > > leads now to splitting of the request path into the query. With 2.4.55: the > the query was 'param=123' but with 2.4.57 (even with your patch) is: > 'xxx¶m=123' > > In this case we use the '?' at the end of the substitution in combination > with the [QSL] flag to secure the request from being split. > > with mod_rewrite:trace8 i see the following difference in the logs: > 2.4.55: `mod_rewrite.c(486): ... split uri=/mod_rewrite_after/?xxx? -> > uri=/mod_rewrite_after/?xxx, args=param=123` > 2.4.57: `mod_rewrite.c(493): ... split uri=/mod_rewrite_after/?xxx -> > uri=/mod_rewrite_after/, args=xxx¶m=123` Maybe we can tie this to QSL then, because that's what expects it to hang around? - *(a2_end-1) = '\0'; /* trailing ? has done its job */ + if (!(newrule->flags & RULEFLAG_QSLAST)) { + *(a2_end-1) = '\0'; /* trailing ? has done its job */ + } -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
