
Вот что я пытаюсь сделать и застрял:
У меня есть сервер 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 и это сработало. Может быть, это было что-то с экранированием знака ?.
Работает.