>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 >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