Nginx leitet letztes Fragment im String um

Nginx leitet letztes Fragment im String um

Ich kann einfach nicht verstehen, wie ich die folgende URL umschreiben soll:

http://example.com/blog/01-01-01/string

Zu

http://example.com/string

Der folgende reguläre Ausdruck stimmt mit der Zeichenfolge überein -^blog\/\d*-\d*-\d*\/(.*)

Mein Nginx-Konfigurationsblock ist:

location / {
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header HOST $http_host;
  proxy_set_header X-NginX-Proxy true;

  proxy_pass http://127.0.0.1:2368;
  proxy_redirect off;
  rewrite ^blog\/\d*-\d*-\d*\/(.*) http://example/$1 permanent;
}

das funktioniert jedoch nicht. Ich verstehe nicht, was ich hier übersehe. Ich habe ein paar Variationen davon ausprobiert, aber ich komme nicht weiter. Ich wäre für jede Hilfe sehr dankbar.

Antwort1

Sie könnten Folgendes versuchen:

rewrite  ^/blog/\d+-\d+-\d+/(.*)  /$1  redirect;

Oder eine angeblich etwas effizientere Möglichkeit, genau das Gleiche zu tun:

rewrite  ^/blog/\d+-\d+-\d+(/.*)  $1  redirect;

Antwort2

Versuchen

^/blog/[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]\/[A-Za-z\-]*$

Hängt wirklich davon ab, wie spezifisch die URL sein wird.

verwandte Informationen