htaccess: Wie ersetze ich eine Zeichenfolge durch ein Sonderzeichen?

htaccess: Wie ersetze ich eine Zeichenfolge durch ein Sonderzeichen?

Ich möchte die folgende URL nach folgender Logik umleiten:

Input  : https://www.example.com/blablabla,?trx_id=TX-23
Output : https://www.example.com/blablabla,TX-23

Die Regel lautet, immer die Zeichenfolge zu entfernen:?trx_id=

Ich habe Folgendes versucht, aber es funktioniert nicht. Es scheint, als ob es mit Sonderzeichen zusammenhängt

RewriteRule ^(.+)?trx_id=(.+)$ $1$2 [R=301,L]

Kann mir bitte jemand helfen? Danke

Antwort1

Versuchen Sie stattdessen Folgendes:

RewriteCond %{QUERY_STRING} ^trx_id=([^&]*)
RewriteRule (.*) /$1%1 [QSD,R,L]

DerRewriteRule Musterstimmt nur mit dem URL-Pfad überein. Um die Abfragezeichenfolge abzugleichen, benötigen Sie eineZustanddas anhand der QUERY_STRINGServervariable überprüft wird.

%1(im Gegensatz zu $1) ist eine Rückreferenz auf das vorhergehendeBedingungsmuster(d. h. der Wert des trx_idURL-Parameters).

verwandte Informationen