2016-02-10 15:06 GMT+01:00 Joe Aldrich <jaldr...@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-unsubscr...@tomcat.apache.org > >> For additional commands, e-mail: users-h...@tomcat.apache.org >