RewriteCondはQuery_Stringから配列パラメーターをフェッチし、残りのパラメーターを保持しながらパスに変換します

Apr 09 2020

配列である1つのパラメーターがURLパスで文字列に変換されている間、いくつかのパラメーターがリダイレクトされ続けることを許可する方法

例:param1 [] = apple&price = 1,10は/ apple /?price = 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

回答

anubhava Apr 10 2020 at 06:21

param1[]=クエリパラメータをどこでも処理するこのリダイレクトルールを使用できます。

RewriteEngine On

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