Não consigo encontrar uma maneira de limitar algumas consultas. Agora eu tenho isso
if ($args ~* "(.*&)?page="){
set $wrongP W;
}
if ($args !~* (.*&)?page=(2|12|24)$){
set $wrongP "${wrongP}R";
}
if ($wrongP = WR){
rewrite ^(.*)$ $uri? permanent;
}
Isso faz exatamente o que eu quero, o problema é se o URL tiver mais de um parâmetro fox ex. /somefile.html?page=2&arg=file remove TODOS os parâmetros. Suponho que seja por causa do segundo se.
Como verificar URLs que possuem múltiplas variáveis e remover todas elas somente se a variável da página não for igual a 2, 14 ou 24?
Responder1
Eu acho que você precisa de algo assim (usando map
):
map $arg_page $need_redirect {
default "1";
"" "0";
"2" "0";
"14" "0";
"24" "0";
}
server {
...
if ($need_redirect) {
rewrite ^ $uri? permanent;
}
...
}