nginx - reescrita seletiva dentro de um bloco de localização

1

Supondo que um bloco de localização precisa lidar com URLs como

  • / test_api / group_1 / version (vários URLs estão nesse grupo. Por exemplo, / test_api / aaa / version, / test_api / bbb / version)
  • / test_api / group_2 / revision (vários outros URLs estão nesse grupo. Por exemplo, / test_api / yyy / revision, / test_api / zzz / revision)

Como eu posso reescrever seletivamente "/ test_api / group_1 / version" ao passar "/ test_api / group_2 / revision" para um servidor padrão dentro de um bloco de localização? Se isso não for possível, existem outras maneiras de atingir o mesmo objetivo. Abaixo está meu bloco de localização atual não discriminatório.

location /test_api {
    types    { application/json json; }
    root     /usr/local/www/data;
    rewrite  "/test_api/([^/]+)/version(.*)/?$"   /api_response/test_api_$1.json   break;
}
    
por ytw 20.12.2012 / 17:42

1 resposta

1

quando você faz dois locais como

location /test_api/group_1/version {
  ...
}

location /test_api {
  ...
}

o MAIS LONGO será sempre igual, então o seu grupo_2 não corresponderá à 1ª regra

    
por 20.12.2012 / 18:29

Tags