rewrite last using variable
    Francis Daly 
    francis at daoine.org
       
    Mon Oct 28 08:09:38 UTC 2013
    
    
  
On Mon, Oct 28, 2013 at 01:56:16AM +0100, Ingo Schmidt wrote:
Hi there,
> set $var "/url?par=val";
> location = /b {
>     rewrite ^ $var last;
> }
> For location b the redirect is internal and now the backend cannot 
> process the request anymore.
> I guess that the URL encoding also takes place in the first case, but 
> here the client decodes the URL and thus everything is ok again.
No; here what is sent to the client includes the bare ?.
> Is it possible in nginx to make rewrites with variables where the 
> variable contains a URL with parameters like in the example? If yes, 
> what do I need to change? If no, what other options do I have?
I believe it is intended to be "no", for internal rewrites at least.
You can do something like
    set $var "/url";
    set $vararg "par=val";
    rewrite ^ $var?$vararg last;
Although you may need to be more subtle if you know that your backend
handles "/url" and "/url?" differently, in case $vararg is empty.
	f
-- 
Francis Daly        francis at daoine.org
    
    
More information about the nginx
mailing list