У меня проблемы с получением относительных перенаправлений, работающих с Apache и ProxyPassReverse.Если я на внутреннем сервере использую абсолютные перенаправления т.е.Location: http://fake.frontend.com/cat
, все прокси, как и предполагалось, однако, если я на внутреннем сервере использую относительные перенаправления, т.е.Location: /cat
это не работает.
Я использую Apache 2.4.25 в Debian.
У меня есть следующая конфигурация на прокси-сервере:
<Location /test/>
ProxyPass http://fake.backend.local/
ProxyPreserveHost Off
ProxyPassReverse http://fake.backend.local/
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap / /cat/
ProxyHTMLURLMap fake.backend.local/ /cat/
ProxyHTMLDocType "<!DOCTYPE html>"
</Location>
КогдаЯ получаю доступ к прокси-серверу на http://fake.frontend.com/cat/
, внутренний сервер перенаправляется в зависимости от того, вошли в систему или нет.Если я не вошел в систему, я перенаправлен (302) на /Signin
.Если я вошел в систему, я перенаправлен (302) на /dashboard
.Если внутреннее приложение использует абсолютные пути в заголовке местоположения, например: http://fake.backend.local/Signin
I, браузер загружает http://fake.frontend.com/cat/Signin
, как и предполагалось.Однако, если пользователи бэкэнда используют относительные пути в заголовке местоположения, то есть: /Signin
браузер загружает http://fake.frontend.com/Signin
(обратите внимание на отсутствующего кота).
Я хочу использовать относительные пути на бэкенде и все равно получаюперенаправлен на http://fake.frontend.com/cat/Signin
.Как настроить прокси для работы с относительными заголовками местоположений?