RewriteCond ruft Array-Parameter aus Query_String ab und konvertiert sie in einen Pfad, wobei die verbleibenden Parameter beibehalten werden

Apr 09 2020

So lassen Sie zu, dass nur wenige Parameter weiterhin umgeleitet werden, während ein Parameter, bei dem es sich um ein Array handelt, im URL-Pfad in eine Zeichenfolge konvertiert wird

Beispiel: param1 [] = apple & price = 1,10 sollte / apple /? price = 1,10 werden

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

Antworten

anubhava Apr 10 2020 at 06:21

Sie können diese Umleitungsregel verwenden, die param1[]=Abfrageparameter überall verarbeitet:

RewriteEngine On

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