Nginx redireciona o último fragmento na string

Nginx redireciona o último fragmento na string

Estou lutando para entender como reescrever o seguinte URL:

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

para

http://example.com/string

O seguinte regex corresponde à string -^blog\/\d*-\d*-\d*\/(.*)

Meu bloco de configuração nginx é:

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;
}

Entretanto, isso não funciona. Estou lutando para ver o que estou perdendo aqui. Eu tentei algumas variações disso, mas não consigo, qualquer ajuda seria muito apreciada.

Responder1

Você poderia tentar isso:

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

Ou uma maneira supostamente um pouco mais eficiente de fazer o mesmo:

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

Responder2

Tentar

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

Realmente depende de quão específico esse URL será.

informação relacionada