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

Apache ProxyPass: передать запрошенный URL как параметр GET в целевой URL

Привет, я пытаюсь настроить ProxyPass для передачи запрошенного URL-адреса в качестве параметра GET в целевой URL-адрес, но я не могу понять, как записать его в файл конфигурации.

Я пробовал примерно так:

ProxyPass ^(.*)$ http://example.com/?url=$1
ProxyPassReverse ^(.*)$  http://example.com/?url=$1

но это не работает. Не могли бы вы мне помочь? Спасибо!

Вы должны использовать ProxyPassMatch директиве, если вы хотите использовать регулярное выражение, НО, как указано в ProxyPass директивная документация

url является частичным URL-адресом для удаленного сервера и не может включать строку запроса.

В результате вам придется использовать RewriteRule директива и установите [P] флаг чтобы запрос обрабатывался как запрос прокси mod_proxy.

Хотя это, вероятно, требует некоторой настройки, отправной точкой может быть:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/foo
RewriteRule ^(.*)$ /foo?url=$1 [P]
ProxyPass /foo http://example.com/
ProxyPassReverse /foo http://example.com/