How to do location /test/place?id=2
J. Lewis Muir
jlmuir at imca-cat.org
Thu Oct 17 21:15:13 UTC 2019
On 10/18, P.V.Anthony wrote:
> Currently have the following url,
>
> https://old.example.com/test/place?id=1
> https://old.example.com/test/place?id=2
> https://old.example.com/test/place?id=3
>
> Need to redirect only id=2 to another url.
>
> Did the following and it works for id=2. Need id=1 and id=3 to continue
> normally without change.
>
> location = /test/place {
> if ($args = "id=2") {
> return 301 https://new.example.com/test/place?$args;
> }
> }
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.
> Or is there a way to do the following? That would be ideal.
>
> location = /test/place?id=2 {
> return 301 https://new.example.com/test/place?id=2
> }
I don't think that's allowed.
> Unfortunately the above does not work. What is missing?
What doesn't work?
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?
Lewis
More information about the nginx
mailing list