tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rémy Maucherat <r...@apache.org>
Subject Re: [PossibleSpam] Re: Tomcat Rewrite Valve
Date Wed, 10 Feb 2016 14:23:58 GMT
2016-02-10 15:06 GMT+01:00 Joe Aldrich <jaldrich@kimobility.com>:

>
> >Am 29.01.2016 15:34, schrieb Joe Aldrich:
> >> Hello,
> >>
> >> I am using Tomcat 8.0.28 on Windows 10 and am having a problem with
> >> the Rewrite Value. I must include the escaped form of an ampersand
> >> '%26' in the output URL.
> >>
> >> My rewrite.config has the following:
> >>
> >> RewriteCond %{QUERY_STRING} ^(.*&)?SCID=8(&.*)?$ RewriteRule
> >> ^/(product|specs|avail-options|avail-category)\.php$
> >> /Product.action?select=Model+4+\%26+4C [R=301,L,NE]
> >>
> >> I am escaping the percent sign with a backslash, and I have tried
> >> using the NE flag. However, Tomcat always is treating the percent
> >> symbol as a back reference to the above RewriteCond. If I don't have a
> >> second capture group, then I get a 500 error from a
> >> NullPointerException.
>
> >The current tomcat code does not allow escaping of percent or dollar sign.
> >
> >The parser just looks for percent (or dollar) and applies it either as a
> backreference (when it is followed by a digit), or a map.
> >
> >I have not found any indication, that escaping is possible with httpd.
> >Could you provide a link to the doc, that states it is possible?
>
> In Apache mod_rewrite it is possible per this documentation:
> https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#quoting


Ok, I added an item for that since the mod_rewrite behavior should be
implemented:
https://bz.apache.org/bugzilla/show_bug.cgi?id=58988

Rémy

>
>
> >If you are willing to build tomcat yourself, you could try the attached
> patch, which will allow escaping of percent signs by specifying them as %%.
> >
> >Your example would thus look like
> >"/Product.action?select=Model+4+%%26+4C".
> >
> >Regards,
> >  Felix
>
> I will look into applying the patch as I need to be able to redirect to
> URLs that contain %26 in the query string.
> Much thanks,
> Joe
>
> >>
> >> I was working with the documentation on this page:
> >>
> >> http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html
> >>
> >> The desired output URL would be:
> >>
> >> http://www.domain.com/Product.html?select=Model+4+%26+4C
> >>
> >> In the example given for the NE flag on the page reference above, the
> >> percent sign is escaped by a backslash to prevent it from being
> >> treated as a back-reference. This is not working for me. Instead I
> >> get:
> >>
> >> http://www.domain.com/Product.action?select=Model+4+\null6+4C
> >>
> >> Where the "null" is due to an empty second back-reference.  I believe
> >> this is a bug in that it is not escaping the percent sign (making it
> >> impossible to create the %26 in the redirect URL). Or am I
> >> misunderstanding something here?
> >>
> >> As a side question, shouldn't an empty back-reference be blank instead
> >> of adding 'null' to the URL?
> >>
> >> Joseph B Aldrich
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message