我有一个运行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¶m2=yredirect到http(s)://www.example.com/scpript?param1=x¶m2=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¶m1=x 。 在重写开始之前,它看起来像是省略了其他参数。