nginx schreibt bestimmten Ordner in PHP und Arg um

nginx schreibt bestimmten Ordner in PHP und Arg um

Ich versuche, domain.tld/blog/read.php?article=first-article auf domain.tld/blog/first-article umzuleiten.

Was ich versucht habe und was nicht funktioniert hat, führte zur Weiterleitung zu 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;
}

Ich denke, das Problem liegt an meinen anderen Teilen in der Konfiguration und hauptsächlich an der zweiten Stelle von unten

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

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

Alle Hinweise würden mir sehr helfen. Prost

Antwort1

Die schnelle Antwort ist also, dass meine Konfiguration beim ersten Mal in Ordnung war, die Nginx-Konfiguration jedoch von oben nach unten gelesen wird, wobei die erste Übereinstimmung diejenige ist, die verwendet wird.
Die „Lösung“ bestand also letztendlich darin, den Blog-Teil weiter oben in der Site-Konfiguration hinzuzufügen.

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

verwandte Informationen