>Am 10.02.2016 um 15:23 schrieb Rémy Maucherat: >> 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 >The fix will be included in 9.0.0.M4 and 8.0.33. The syntax will be the same >as with httpd 2.2 using a backslash to quota a percent sign. > >@Joe, could you test the current trunk for 8 or 9?
Yes, I will test it out as soon as I get the chance. Thanks again, Joe >Regards, > Felix >> 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 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org