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

I tested the truck for Tomcat 8. Escaping '%' or '$' with '\' now works as 
expected according to the documentation.

Thanks for all the help on this,
 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

Reply via email to