htaccess: Как заменить строку специальным символом?

htaccess: Как заменить строку специальным символом?

Я хотел бы перенаправить следующий 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_idURL).

Связанный контент