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]

RewriteRule 圖案僅與 URL 路徑相符。要符合查詢字串,您需要狀態檢查QUERY_STRING伺服器變數。

%1(與 相對$1)是對前面的反向引用條件模式(即 URL 參數的值trx_id)。

相關內容