A diretiva location
não corresponde na string de consulta. Então você terá que fazer outra coisa.
Eu presumo que você tenha um número grande deles para trabalhar, então eu sugiro usar um par de map
s . Por exemplo:
map $arg_directoryid $mycategory {
11 hard-drive-cases;
12 some-other-category;
default ""; # would go to the homepage, change it to go to some other page
}
Então você faria um location
como:
location /productcatalog.aspx {
return 301 $scheme://$host/$mycategory;
}
Faça um segundo map
e location
para o $arg_productid
correspondente a productdetails.aspx
. Se esse for excepcionalmente grande, você poderá ter problemas de desempenho e precisará eliminar isso e fazer alguns scripts para obter o redirecionamento de um banco de dados.
O map
s deve estar no bloco http
, não dentro de um bloco server
. Se você estiver hospedando vários sites, o melhor lugar para colocá-los, na minha opinião, é imediatamente antes do bloco server
ao qual eles correspondem.