RewriteCond recupera los parámetros de la matriz de Query_String y los convierte en ruta conservando los parámetros restantes

Apr 09 2020

Cómo permitir que algunos parámetros sigan siendo redirigidos mientras un parámetro, que es una matriz, se convierte en una cadena en la ruta de la URL

ejemplo: param1 [] = manzana & precio = 1,10 debería convertirse en / manzana /? precio = 1,10

Orginal url: example.com/path1/?param1[]=apple&param2=1,100
Expected redirection: example.com/path1/apple/?param2=1,100

Orginal url: example.com/path1/path2/?param[]=apple&param2=1,100&param3=yes
Expected redirect: example.com/path1/path2/apple/?param2=1,100&param3=yes

Respuestas

anubhava Apr 10 2020 at 06:21

Puede usar esta regla de redireccionamiento que manejará el param1[]=parámetro de consulta en cualquier lugar:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*&)?param1\[\]=([^&]*)(?:&(.*))?$ [NC] RewriteRule ^(.*?)/?$ /$1/%2?%1%3 [R=301,NE,L]