nginx - 301 redirecionamento / subpasta1 / algum-amigável-url-12345 para / subpasta2 / algum-amigável-url

1

Sou novato no nginx.

Eu tenho alguns URLs antigos como / aaaaa / some-friendly-url-12345 e quero 301 redirecionar esses URLs para um novo, mas sem ID's, como < strong> / bbbbb / some-friendly-url .

Eu também quero redirecionar / aaaaa / para / bbbbb /

Eu tentei algumas diretivas location mas não consegui sucesso de alguma forma.

Este é um dos que eu tentei:

location ~ /aaaaa/(?P<a_slug>.*)$-(?P<a_id>.*) {
   return 301 https://domain.com/bbbbb/$a_slug;
}

Obrigado.

    
por Abdullah Ceylan 24.01.2017 / 10:17

1 resposta

0

Se você mover o $ para o final, a expressão regular deverá funcionar para casos limitados. Ele pode ser melhorado fazendo com que o termo final corresponda apenas aos valores numéricos (portanto, você não está contando com a ganância da primeira captura). Por exemplo:

location ~ ^/aaaaa/(?<a_slug>.*)-\d+$ {
    return 301 /bbbbb/$a_slug;
}

Que também pode ser reescrito usando uma expressão rewrite :

rewrite ^/aaaaa/(.*)-\d+$ /bbbbb/$1 permanent;

Veja este documento para saber mais. Além disso, este recurso para expressões regulares .

    
por 24.01.2017 / 11:54