Estou tendo que reescrever URLs no nginx.conf que contêm parâmetros de consulta específicos;
Como um exemplo:-
location /brands/exampleA {
if ($arg_cat = "9") {
return 301 /page/brand-filter;
}
if ($arg_cat = "38") {
return 301 /page/category/brand-filter;
}
}
Essas reescritas de URL seriam reescritas example.com/brands/exampleA/?cat=9
para example.com/page/brand-filter
e example.com/brands/exampleA/?cat=38
para example.com/page/category/brand-filter
.
E eles funcionam perfeitamente, mas o problema é que eles quebram todas as outras páginas filhas do bloco de localização, por exemplo, as páginas a seguir não seriam carregadas com um erro Nginx: -
example.com/brands/exampleA/range1
example.com/brands/exampleA/range2
example.com/brands/exampleA/range3
example.com/brands/exampleA/range4
Portanto, há algo que eu possa adicionar à instrução de localização para impedir que qualquer coisa se aplique a qualquer coisa depois exampleA
- essas reescritas devem corresponder APENAS aos parâmetros de consulta ?cat=.
Sua configuração atualmente usa um local de prefixo , o que significa que ele é considerado quando o URI solicitado começa com o valor
/brands/exampleA
.Para restringir a correspondência a apenas um URI, use a sintaxe de correspondência exata :
Consulte este documento para obter detalhes.