Dies ist eine aktualisierte Version dieser Frage. (Ich habe nie gefragt, eine Frage hier, damit ich nicht auf dem ursprünglichen Kommentar kann)Interpolation mehrerer Variablen innerhalb der Nginx-Map-Direktive
Variable interpolation inside Map directive
Nach den docs Kombinationen von Strings und Variablen sind nun erlaubt. Wie hier zu sehen: http://nginx.org/en/docs/http/ngx_http_map_module.html#map
und hier: https://trac.nginx.org/nginx/ticket/663
Der resultierende Wert kann Text, variable (0.9.0) enthält, und deren Kombination (1.11.0).
Allerdings kann ich es immer noch nicht funktionieren.
Wir haben eine große Anzahl von Weiterleitungen und gemäß dem folgenden Vorschlag versuche ich, sie mit der map-Direktive zu implementieren. Hier https://serverfault.com/questions/450325/nginx-and-try-files-try-named-location-with-rewrites-before-fallback
ist ein Beispiel-Mapping:
map $uri $redirect {
/wrong/path /right/path/;
~^/another/wrong/path/(?<path>.*)$ /another/right/path/$path;
}
Dies gibt die Zeichenkette /another/right/path/$path
Dies funktioniert:
map $uri $redirect {
/wrong/path /right/path/;
~^/another/wrong/path/(?<path>.*)$ $path
}
So weiß ich, dass die Variable ist nicht das Problem .
Kann jemand Strings mit Variablen in der map-Direktive kombinieren? Was fehlt mir hier?
Ich bin auf Version 1.11.2