necesito reescribir nginx

necesito reescribir nginx

Tengo URL como:

index.php?q=123&w=456&e=789

y necesito reescribirlos en algo como:

index/123/456/789

sin usar "si".

Hasta ahora lo he probado:

location / {
    rewrite ^/index.php\?q=(.*)&w=(.*)&e=(.*)$ /index/$1/$2/$3;
}

Pero no funciona. ¿Algunas ideas?

Respuesta1

La respuesta corta es que no puedes sin usar if.

La respuesta larga es expresión regular en elrewritela sintaxis solo coincide con el URI.

Pruebe algo como esto:

    location /index.php {
        if ($args ~ "^q=(.*)&w=(.*)&e=(.*)") {
            set $arg_q $1;
            set $arg_w $2;
            set $arg_e $3;
            rewrite_log on;
        rewrite ^ /index/$arg_q/$arg_w/$arg_e last;
        }
    }

información relacionada