0

由于某些不好的原因,我从一些外部应用程序返回了一个查询字符串,如下所示:

/?pid=778edb836ed7803042724a674a2e5e51?QID=041349e48e1c4d46b1a2b8ff610ca19c&TransID=1374845199000003000307675&Status=AUTHORIZE_REQUEST&XID=4f75837b42ce4cca83abee43438e1d06

现在我在想总是有一个 TransID,我可以重写它,但我失败了——我的尝试看起来像这样:

Rewritecond %{QUERY_STRING}%  (.+)\?(.+TransID=.+) [NC]
Rewriterule ^(.*) http://${servers:apserver}:${servers:apport}/$1?%1&%2 [P,L]

我的目标 - 替换第二个?以 & 开头的 QID

4

2 回答 2

0

试试这个代码:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^?]*)\?([^?]*)\?([^\s]*)\s
Rewriterule ^ http://${servers:apserver}:${servers:apport}/%1?%2&%3 [P,L]
于 2013-08-12T15:12:42.030 回答
0

只需添加 \& 并更改为 .* 有助于修复它

Rewritecond %{QUERY_STRING}%  (.*)\?(.*\&TransID=.*) [NC]
于 2013-08-12T15:59:39.023 回答