bloco de localização nginx, redireciona quando não corresponde a uma expressão

1

Estamos fazendo a transição de um conjunto de locais do formulário: example.com/app1 para o qual faremos um redirecionamento para / app2.

No entanto, queremos manter alguns URIs para app1 ativo. Por exemplo, example.com/app1/111 e example.com/app1/222 NÃO devem redirecionar.

Como isso deve ser feito? O bloco de localização não aceita um prefixo como "! ~", O que facilitaria, por exemplo,

location !~ /app1/(111|222) {
  rewrite /app1 /app2;
}

não funciona em termos de correspondência de padrões de localização.

Eu tentei isso (assim como coloquei parens em volta de tudo depois de / app1 /), mas também não funciona:

location ~ /app1/!(111|222) {
  rewrite /app1 /app2;
}

Sugestões?

    
por cjc 30.01.2012 / 16:59

1 resposta

1

cmiiw você poderia tentar (pls verifique se o pedido está correto, e você pode tentar mudar o regex)

location ~ ^/app1/111$ {
  break;
}

location ~ ^/app1/222$ {
  break; 
}

location ~ ^/app1$ {
  rewrite /app1 /app2;
}
    
por 30.01.2012 / 17:07

Tags