Cómo redirigir con una cadena de consulta en Nginx

Cómo redirigir con una cadena de consulta en Nginx

Me gustaría redirigir:

something.com/search?keywords='value'

a

something.com/search?q='value'

Aquí está mi configuración de Nginx:

location ~ /search {
       if ($args ~* "keywords=(.*)") {
            rewrite ^.*$ /search?q=$arg_keywords permanent;
        }
    }

Pero el qparámetro está vacío en la redirección.

¿Lo que está mal?

Respuesta1

Pero el parámetro q está vacío en la redirección.

No veo ese problema. Cuando pruebo la configuración tal como está escrita, se crea un bucle de redirección porque el original keywords='value'se agrega al URI reescrito.

Puede evitar rewriteincluir parámetros originales agregando a ?al URI reescrito.

Por ejemplo:

rewrite ^ /search?q=$arg_keywords? permanent;

Vereste documentopara detalles.

información relacionada