How to do location /test/place?id=2

P.V.Anthony anthony at
Fri Oct 18 04:00:12 UTC 2019

On 18/10/19 5:15 am, J. Lewis Muir wrote:

> You might want to use $arg_id here (i.e., the $arg_<name> variable for
> the <name> argument).  Otherwise, it won't work if any other arguments
> are given.

Noted. I will change that.

>> Or is there a way to do the following? That would be ideal.
>> location = /test/place?id=2 {
>>      return 301
>> }
> I don't think that's allowed.

Yah. Sad.

>> Unfortunately the above does not work. What is missing?
> What doesn't work?

I was hoping to get location = /test/place?id=2 { to work. Like you have 
mentioned, it is not allowed.

> I would think your
>> location = /test/place {
> block would work, although not as shown, but I assume you just left
> out the part that normally handles the request.  It would handle the
> requests for id=1 and id=3 as before, and it's just the id=2 case that
> gets redirected, right?

That is where I need help with. I need help with requests for id=1 and 
id=3. I need them to just pass through without any changes. I only need 
id=2 to be redirected and id=2 redirection is working. I cannot figure 
out how to pass through id=1 and id=3.

With the follow block id=1 and id=3 gives a 404 error.

location = /test/place {
      if ($args = "id=2") {
        return 301$args;

How to make id=1 and id=3 to work?


More information about the nginx mailing list