
Я хотел бы перенаправить следующий URL-адрес в соответствии со следующей логикой:
Input : https://www.example.com/blablabla,?trx_id=TX-23
Output : https://www.example.com/blablabla,TX-23
Правило — всегда удалять строку:?trx_id=
Я попробовал следующее, но это не работает. Похоже, это связано со специальными символами
RewriteRule ^(.+)?trx_id=(.+)$ $1$2 [R=301,L]
Может кто-нибудь помочь? Спасибо.
решение1
Вместо этого попробуйте следующее:
RewriteCond %{QUERY_STRING} ^trx_id=([^&]*)
RewriteRule (.*) /$1%1 [QSD,R,L]
TheRewriteRule
шаблонсоответствует только URL-пути. Чтобы сопоставить строку запроса, вам нужносостояниекоторый проверяет QUERY_STRING
переменную сервера.
%1
(в отличие от $1
) является обратной ссылкой на предыдущийCondPattern(т.е. значение параметра trx_id
URL).