RewriteCond tìm nạp các tham số mảng từ Query_String và chuyển đổi thành đường dẫn trong khi vẫn giữ lại các tham số còn lại

Apr 09 2020

Cách cho phép một vài tham số tiếp tục được chuyển hướng trong khi một tham số là một mảng được chuyển đổi thành một chuỗi trong đường dẫn url

ví dụ: param1 [] = apple & price = 1,10 nên trở thành / 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

Trả lời

anubhava Apr 10 2020 at 06:21

Bạn có thể sử dụng quy tắc chuyển hướng này sẽ xử lý param1[]=tham số truy vấn ở bất kỳ đâu:

RewriteEngine On

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