tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fredk2 <fre...@gmail.com>
Subject RE: POST data lost when switching URL using mod_rewrite and mod_jk
Date Thu, 06 Sep 2007 17:29:51 GMT

The mod_rewrites encoding can be changed with option 
'noescape|NE' (no URI escaping of output) 

This flag keeps mod_rewrite from applying the usual URI escaping rules to
the result of a rewrite. Ordinarily, special characters (such as '%', '$',
';', and so on) will be escaped into their hexcode equivalents ('%25',
'%24', and '%3B', respectively); this flag prevents this from being done.
This allows percent symbols to appear in the output, as in 

RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 

Rgds, Fred


Michael Böckling wrote:
> 
> 
>> why aren't you 
>> switching to https before it gets complicated, i.e. when a simple request 
>> is coming in, like for the form page itself?
> 
> Unfortunately, that is not an option.
> 
> 
>> - is the Location header apache httpd sends back for the 
>> redirect still 
>> OK? You can check with a commandline client like e.g. curl.
>> 
> 
> No, here's where the trouble starts. It seems like mod_rewrite can't
> handle UTF-8 URLs. I used the LiveHTTPHeaders plugin for Firefox, and
> here's the output:
> 
> Original (correct request):
> GET /lucene/target.jsp?test=%C3%BCberraschung HTTP/1.1
> 
> Flawed redirect:
> Location:
> http://localhost:778/lucene/target.jsp?test=%25C3%25BCberraschung
> 
> As you can see, the % have been encoded again.
> 
> What can I do about it?
> 
> 
> Regards,
> 
> Michael
> 
> 
> 
>> - if so, is the second request as decoded by apache OK? The 
>> access log 
>> might give an idea about that
>> 
>> - if so, is the forwarded request from mod_jk to Tomcat OK 
>> (JkLogLevel 
>> debug shows a line ...service... which containes the forwarded URL at 
>> the end)
>> 
>> Regards,
>> 
>> Rainer
>> 
>> Michael Böckling wrote:
>> > Ok, that makes it clear to me.
>> > Thanks for the exhaustive reply!
>> > 
>> > Btw., I didn't configure the servers, I'm just trying to 
>> get my forms data through and understand as much as possible. :-)
>> > 
>> > So I switched to GET, but again, I ran into issues, this 
>> time it is character-encoding related.
>> > The Tomcats all have URIEncoding="UTF-8" set, and it works 
>> whithout the rewrite-induced redirect.
>> > 
>> > But when redirect is used, the following happens:
>> > 
>> > The parameter "führung" becomes "f%C3%BChrung" in my JSPs. 
>> I did "AddDefaultEncoding UTF-8" in my Apache config, that 
>> doesn't help. Is there a configuration option for mod_rewrite 
>> or mod_jk that I have to set to make it work? I tried the 
>> "ForwardURIxxx" options on my mod_jk, but they didn't help. Any Ideas?
>> > 
>> > Thanks a lot for the help so far!
>> > 
>> > Regards,
>> > 
>> > 
>> > Michael
>> > 
>> > 
>> > 
>> >> -----Original Message-----
>> >> From: Rainer Jung [mailto:rainer.jung@kippdata.de]
>> >> Sent: Thursday, September 06, 2007 4:35 PM
>> >> To: Tomcat Users List
>> >> Subject: Re: POST data lost when switching URL using 
>> mod_rewrite and
>> >> mod_jk
>> >>
>> >>
>> >> Example from
>> >>
>> >> http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
>> >>
>> >> 10.3.2 301 Moved Permanently
>> >>
>> >> The requested resource has been assigned a new permanent 
>> URI and any 
>> >> future references to this resource SHOULD use one of the 
>> >> returned URIs. 
>> >> Clients with link editing capabilities ought to 
>> automatically re-link 
>> >> references to the Request-URI to one or more of the new references 
>> >> returned by the server, where possible. This response is cacheable 
>> >> unless indicated otherwise.
>> >>
>> >> The new permanent URI SHOULD be given by the Location field in the 
>> >> response. Unless the request method was HEAD, the entity of 
>> >> the response 
>> >> SHOULD contain a short hypertext note with a hyperlink to the 
>> >> new URI(s).
>> >>
>> >> If the 301 status code is received in response to a request 
>> >> other than 
>> >> GET or HEAD, the user agent MUST NOT automatically redirect 
>> >> the request 
>> >> unless it can be confirmed by the user, since this might 
>> change the 
>> >> conditions under which the request was issued.
>> >>
>> >>        Note: When automatically redirecting a POST request after
>> >>        receiving a 301 status code, some existing HTTP/1.0 
>> user agents
>> >>        will erroneously change it into a GET request.
>> >>
>> >> So if you are using HTTp Redirect, check your Apache 
>> access log. It's 
>> >> likely you will notice, that the browser switched from a POST 
>> >> to a GET 
>> >> during the redirect and the POST Body isn't send by the 
>> >> Browser. Nothing 
>> >> we could do in this case on the server side.
>> >>
>> >> You should try to identify a GET which sits before the 
>> POST in your 
>> >> clickstream and do the redirect already there (like e.g. when the 
>> >> browser tries to retrieve the empty form before it tries 
>> to send the 
>> >> contents).
>> >>
>> >> Regards,
>> >>
>> >> Rainer
>> >>
>> >> Michael Böckling wrote:
>> >>> Hi folks!
>> >>>
>> >>> I Have the following setup:
>> >>>
>> >>> Apache/2.2.4 
>> >>> mod_ssl/2.2.4 
>> >>> mod_jk/1.2.25
>> >>> mod_rewrite (?)
>> >>> Apache Tomcat 5.5.23
>> >>>
>> >>> Browser ==> Apache + mod_rewrite ==> mod_jk ==> Tomcat
>> >>>
>> >>>
>> >>> This is a Linux machine, and mod_rewrite is used to switch 
>> >> to SSL on certain URLs.
>> >>> Problem: the POST data is lost whenever a form on a http 
>> >> page sends data to a page that gets its URL rewritten to https.
>> >>> This goes as folllows:
>> >>>
>> >>> http page => form post to http url => rewrite url to https, 
>> >> switch to SSL => display https url
>> >>> No data arrives when using POST!
>> >>> I know there is a bug that limits the maximum post size to 
>> >> x KB, but in my case, the post data is a just a few text fields.
>> >>> Any idea as to why this happens?
>> >>>
>> >>> Regards,
>> 
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/POST-data-lost-when-switching-URL-using-mod_rewrite-and-mod_jk-tf4392318.html#a12527470
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message