nginx reescreve pasta específica para php e arg

nginx reescreve pasta específica para php e arg

Estou tentando redirecionar domain.tld/blog/read.php?article=first-article para domain.tld/blog/first-article

O que tentei e não funcionou, resultando no redirecionamento para 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;
}

Pensar que o problema vem de minhas outras partes na configuração e principalmente do segundo local abaixo

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

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

Qualquer dica ajudaria muito. Felicidades

Responder1

Portanto, a resposta rápida é, na verdade, o fato de que minha configuração estava boa na primeira vez, mas a configuração do nginx é lida de cima para baixo, sendo a primeira correspondência a usada.
Então no final a "correção" foi adicionar a parte superior do blog na configuração do site

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

informação relacionada