On 3/13/23 4:04 PM, Eric Covener wrote:
> On Mon, Mar 13, 2023 at 10:59 AM Ruediger Pluem <rpl...@apache.org> wrote:
>>
>>
>>
>> On 3/13/23 3:23 PM, Eric Covener wrote:
>>> Yann, can you check out the failure I committed and see if it's me or
>>> unintended? Everything else went pretty smooth and looks useful in a
>>> bind.
>>>
>>> # Check /modules/rewrite/escaping/local_bctls_nospace/foo/bar/%20baz/%0d
>>> for foo/bar/ baz%0d
>>> # rewritten query 'foo%2fbar%2f+baz%2f%0d'
>>> # expected: 'foo/bar/ baz%0d'
>>> # received: 'foo%2fbar%2f+baz%2f%0d'
>>> not ok 67
>>>
>>>
>>> RewriteRule ^/modules/rewrite/escaping/local_bctls_nospace/(.*)
>>> /?$1 "[B= ?,BNEG,BCTLS]"
>>
>> I think the test is wrong. Due to BCTLS being set spaces get escaped.
>> I think you should change the flags to "[B= ?,BNEG]"
>
> I wonder if being able to negate items in BCTL is useful though? At
> least the space.
> In the test case, it's not so useful for the query string as that will
> be checked and fail currently (if we knew the user did escaping, maybe
> we could drop the check in mod_rewrite.c and fix more of the impacted
> corner cases)
>
> But a capture of a space could need to go into a local filename, without [PT].
>
If you have captures and you just want them to go in the path I guess no B at
all is needed.
If you use captures in path and query string I guess the best approach is to
use no B, but
a probably modified/added int:escape RewriteMap on the captures that go into
the query string.
Regards
Rüdiger