Как передать аргументы через ProxyPass в Apache

Как передать аргументы через ProxyPass в Apache

Вот что я пытаюсь сделать и застрял:

У меня есть сервер Apache, который перехватывает определенные URL-адреса, и для некоторых из них он использует ProxyPass (или mod_rewrite), чтобы передать что-то как обратный прокси-сервер другому экземпляру Apache.

Итак, у меня есть такой URL:

/index.php/info?format=xml&token=SOMENUMERICTOKEN&token=SUMENUMERICTOKEN

Я пробовал :

PassProxy /index.php/info?format=xml https://1.2.3.4:567/index.php/info?format=xml

и соответствующий ProxyReverse, но он не работает

Также пробовал переписывать с теми же строками и окончанием [P] для проксирования.

Ни один из них не работает.

Они будут работать, если я закончу на /index.php, но я не могу разрешить доступ к index.php

решение1

ProxyPass работает только с частью совпавшего URL, а не со строкой запроса. ЕСЛИ вы включите строку запроса в шаблон, вы никогда не получите совпадения.

Итак, чтобы сделать то, что вы хотите, вы должны использовать что-то вроде:

ProxyPass /index.php/info https://1.2.3.4:567/index.php/info

Хотя в этом случае вы, вероятно, могли бы использовать даже:

ProxyPass / https://1.2.3.4:567/

По сути, proxypass можно рассматривать как своего рода «поиск и замена». «ProxyPass A B» по сути означает «найти A в URL, и если найдено, заменить на B».

решение2

ХОРОШО.

Я просто оставил /index.php/info в ProxyPass и это сработало. Может быть, это было что-то с экранированием знака ?.

Работает.

Связанный контент