nginx reescribe una carpeta específica en php y arg

nginx reescribe una carpeta específica en php y arg

Estoy intentando redirigir domain.tld/blog/read.php?article=first-article a domain.tld/blog/first-article

Lo que probé y no funcionó resultó en una redirección a domain.tld/first-article

location "^blog/([^/]+)/?$" {
 try_files /$uri /$uri/ /blog/read.php?article=$1;
}
location /blog {
 rewrite ^/blog/?$ /blog/read.php?article=? last;
 rewrite ^/blog/([-a-zA-Z0-9_]+)/$ /blog/read.php?article=$1? last;
}
location ~ "^/blog/([^/]+)/?$" {
 try_files /$uri /$uri/ /blog/read.php?article=$1;
}

Creo que el problema proviene de mis otras partes en la configuración y principalmente de la segunda ubicación desde abajo.

server {
...
...
location ~ "^/([^/]+)/?$" {
 try_files $uri $uri/ /device.php?name=$1;
}

location ~ "^/([^/]+)/([^/]+)/?$" {
 try_files $uri $uri/ /device.php?name=$1&crversion=$2;
}
...

Cualquier consejo ayudaría mucho Saludos

Respuesta1

Entonces, la respuesta rápida es en realidad el hecho de que mi configuración estuvo bien la primera vez, sin embargo, la configuración de nginx se lee de arriba a abajo y la primera coincidencia es la que se usa.
Entonces, al final, la "solución" fue agregar la parte superior del blog en la configuración del sitio.

location ~ "^/blog/([^/]+)/?$" {
 try_files /$uri /$uri/ /blog/read.php?article=$1;
}

información relacionada