Apache url кодирует переменную, встроенную в параметр url - PullRequest
0 голосов
/ 13 июня 2019

Я думал, что флаг B приведет к тому, что переменные будут закодированы в URL, но это не сработает.

В приведенном ниже коде %{QUERY_STRING} без кодирования & в %26.

RewriteRule ^(.*PATTERN.*) http://scooterlabs.com/echo?url=http://host.com/$1?%{QUERY_STRING} [B,P,L]

path/?a=1&b=2 будет проксироваться до http://scooterlabs.com/echo?url=http://host.com/path/?a=1&b=2 вместо требуемого http://scooterlabs.com/echo?url=http://host.com/path/?a=1%26b=2.

1 Ответ

1 голос
/ 14 июня 2019

Я получил его на работу, но только установив скрипт url cgi, который будет действовать как прокси между apache и prerender для правильного кодирования URL таким образом, который может быть проанализирован prerender, и используя скрипт cgi в качестве целиRewriteRule (например, /proxy.cgi/http://host.com/$1?%{QUERY_STRING})

Основная функция прокси-сервера заключается в том, что URL-адрес для прокси-сервера не воспринимается как параметр * , а скорее как cgi PATH_INFOпеременная, которая отменяет необходимость в начальном вопросительном знаке ? токен запроса.

...