重写规则失去了查询参数

我有一个运行apache2和php7的networking服务器。

在我的apacheconfiguration中,有如下的redirect规则:

RewriteCond %{HTTP_HOST} !^www.* RewriteRule .* %{HTTP:X-Forwarded-Proto}://www.%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L] 

这应该执行http(s)://example.com/scpript?param1=x&param2=yredirect到http(s)://www.example.com/scpript?param1=x&param2=y

它基本上工作,只有一个例外:只有第一个getparameter passing给rewitten url,所以我的客户端实际上收到http(s)://www.example.com/scpript?param1=x作为redirect目标。

我很困惑,我怎么让系统通过完整的查询呢?

如果还试过

 RewriteRule .* %{HTTP:X-Forwarded-Proto}://www.%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [QSA,R=301,L] 

但是,这会将我redirect到http(s)://www.example.com/scpript?param1=x&param1=x 。 在重写开始之前,它看起来像是省略了其他参数。