Precisa de ajuda para otimizar redirecionamentos 301 no nginx

3

Acabei de criar uma nova estrutura para um website e preciso de ajuda para redirecionar para novos lugares.

O código que funciona está aqui, mas acho que isso pode ser muito otimizado.

location = /nl {
    rewrite ^ $scheme://$server_name permanent;
}

location = /nl/ {
    rewrite ^ $scheme://$server_name permanent;
}

location = /en {
    rewrite ^ $scheme://$server_name permanent;
}

location = /en/ {
    rewrite ^ $scheme://$server_name permanent;
}

location = /nl/contact {
    rewrite ^ $scheme://$server_name/contact/ permanent;
}

location = /en/contact {
    rewrite ^ $scheme://$server_name/contact/ permanent;
}
    
por Saif Bechan 18.12.2011 / 01:16

1 resposta

0

As regravações não precisam estar em blocos de localização - e podem corresponder a uma regex.

Você pode ter algum sucesso com duas reescritas:

rewrite ^/(en|nl)(/contact)(/?)$ $scheme://$server_name/contact/ permanent;
rewrite ^/(en|nl)(/?)$ $scheme://$server_name permanent;

Como alternativa, você pode combinar os primeiros 4 e os últimos 2 blocos de localização com correspondências de regex - mas isso faz com que a prioridade da correspondência seja acertada (o que pode não ser muito significativo).

(Crédito para @Saif Bechan por fixar minha proposição original)

    
por 20.12.2011 / 22:31