Parece que no puedo encontrar una manera de limitar algunas consultas. Ahora mismo tengo esto
if ($args ~* "(.*&)?page="){
set $wrongP W;
}
if ($args !~* (.*&)?page=(2|12|24)$){
set $wrongP "${wrongP}R";
}
if ($wrongP = WR){
rewrite ^(.*)$ $uri? permanent;
}
Esto hace exactamente lo que quiero, el problema es si la URL tiene más de un parámetro fox ex. /somefile.html?page=2&arg=file elimina TODOS los parámetros. Supongo que es por el segundo si.
¿Cómo puedo verificar las URL que tienen múltiples variables y eliminarlas todas solo si la variable de la página no es igual a 2, 14 o 24?
Respuesta1
Supongo que necesitas algo como esto (usando map
):
map $arg_page $need_redirect {
default "1";
"" "0";
"2" "0";
"14" "0";
"24" "0";
}
server {
...
if ($need_redirect) {
rewrite ^ $uri? permanent;
}
...
}