Ответ 1
ProxyPassReverse
ProxyPassReverse должен сделать это для вас:
Эта директива позволяет Apache настраивать URL-адреса в заголовках Location, Content-Location и URI в ответах HTTP-перенаправления.
Я не уверен, почему ваш обратный прокси-сервер не ведет себя таким образом, предполагая, что вы используете пару директив ProxyPass и ProxyPassReverse для его определения.
Редактирование заголовка местоположения
Если вы хотите иметь возможность редактировать заголовок Location, как вы описываете, вы можете сделать это с Apache 2.4.7:
Для редактирования есть как аргумент-значение, являющееся регулярным выражением, так и дополнительная замещающая строка. Начиная с версии 2.4.7 строка замены может также содержать спецификаторы формата.
"Спецификаторы формата", упомянутые в документах, включают в себя возможность использования переменных среды, например, %{VAR}e
.
Возможно, вы также захотите изменить свое приложение так, чтобы параметр URL-адреса orig_request был релятивизирован, что потенциально устраняет необходимость редактирования заголовка с помощью переменных среды.
Заголовок расположения относительного пути
Вы также можете попробовать использовать относительный путь в заголовке Location, что избавит вас от необходимости явно отображать один домен на другой. Это официально действует с RFC 7231 (июнь 2014 г.), , но была широко поддержана еще до этого. Вы можете релятивизировать свой заголовок Location с помощью директив Apache Header edit
(даже до версии 2.4.7, поскольку для этого не требуется подстановка переменных среды). Это будет выглядеть примерно так:
Header edit Location "(^http[s]?://)([a-zA-Z0-9\.\-]+)(:\d+)?/" "/"