httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Travis Sidelinger <tra...@ilive4code.net>
Subject Re: [users@httpd] mod_rewrite + mod_proxy trouble
Date Mon, 11 Feb 2008 17:59:45 GMT
Thanks, I see what's going on now.

Here is what I've tried followed by the response on the backend server:

Case 1:
RewriteRule "^/(.*)$" proxy:balancer://aquabrowser$1?c_loc=220" [QSA,L]

"GET /?c_loc=220\" HTTP/1.1"  -> Note I get a 500 error when trying to access
anything other then /.

Case2:
RewriteRule "^(/.*)$" proxy:balancer://aquabrowser$1?c_loc=220" [QSA,L]

"GET /cd/README?c_loc=220\"&test=1 HTTP/1.1" -> It works, but where is that \"
coming from?  I'm still testing.



Krist van Besien wrote:
> On Feb 11, 2008 3:25 PM, Travis Sidelinger <travis@ilive4code.net> wrote:
> 
>>    RewriteRule "^/(.*)$" proxy:balancer://aquabrowser$1&c_loc=220" [QSA,L]  
# I
>> get 404 Error: "GET //cd/README&c_loc=220%22?test=1 HTTP/1.1" in the logs of
the
>> backend server.
> 
> You append "&c_loc=220" to the URL, and then append the old query
> string. The result is that your backend gets a request for the
> resource "README&c_loc=220" with query string test=1, and the
> resources is unavailable. Is this what you wanted? Or are you trying
> to rewrite to Readme?c_loc=220&test=1 ?
> 
> Here is how you can use QSA:
> 
> Rewriterule   (/.*)                   /$1?newparam=value [QSA,L]
> 
> This will make apache merge the querystring you gave, with the
> existing querystring. The above rule will add ?newparam=value if there
> is no existing query string, and will add &newparam=value to an
> existing query string. Furthermore you have to remember that a
> Rewriterule operates only on the part to the left of the ?, a
> rewriteruels cannot be uses to match against a query string, you can
> do this however in a reWriteCond.
> 
> What would work for you would probably be something like:
> 
>  RewriteRule "^/(.*)$" proxy:balancer://aquabrowser$1?c_loc=220" [QSA,L]
> 
> This will never work:
>   RewriteRule "^(.*\?.*)$" "http://catalog1.tld.org%{REQUEST_URI}&c_loc=220"
> 
> As reWriteRule operates on the URI without the query string.
> 
> Krist
> 
> 


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message