Назад | Перейти на главную страницу

Правило перезаписи теряет параметры запроса

У меня есть веб-сервер, на котором запущен apache2 с php7.

В моей конфигурации apache есть правило перенаправления, подобное следующему:

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=y к http(s)://www.example.com/scpript?param1=x&param2=y

В основном это работает, за одним исключением: на переписанный URL-адрес передается только первый параметр get, поэтому мой клиент фактически получает http(s)://www.example.com/scpript?param1=x как цель перенаправления.

Я очень озадачен, как мне заставить систему передавать полный запрос?

если также попробовал

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

Но это перенаправляет меня на http(s)://www.example.com/scpript?param1=x&param1=x. Похоже, что что-то упускает другие параметры, прежде чем перезапись вступит в силу.