https://bz.apache.org/bugzilla/show_bug.cgi?id=60013

--- Comment #27 from Mark Thomas <ma...@apache.org> ---
I think I have a better understanding of what is going on.

Both Tomcat and httpd decode and normalize the URI before rewriting. The
problem occurs later.

Consider the following rule:

RewriteRule /a/(.*) /b?$1

With httpd the query string is as follows:

/a/id=%61 -> id=a
/a/id=%3d -> id==
/a/id=%3f -> id=?
/b?id=%61 -> id=%61
/b?id=%3d -> id=%3d
/b?id=%3f -> id=%3f

Note how the query string varies depending on whether the request goes through
the rewrite rule or not. The problem isn't limited to the query string but it
does illustrates the problem. Note also that an application isn't going to be
able to unambiguously parse some of those re-written query strings and that
using the [B] flag won't help in this since it will incorrectly encode the
first '='.

In Tomcat the problem is more immediately apparent because the query string has
to be presented in encoded form.

I think we can get closer to the httpd behaviour but there are always going to
be edge cases we won't be able to fix.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to