ProxyHTML для перезаписи URL
У меня установлено 2 сервера Apache. Один на порту 80, а другой на порту 8077. Я хочу видеть все на сервере на 8077 через обратный прокси. На данный момент у меня есть:
ProxyPreserveHost Off
ProxyHTMLInterp On
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap / /translate/
Это позволяет мне перейти на начальную страницу сайта, но ссылки на изображения, CSS и другие страницы не работают.
Например, CSS в HTML показывает как
/css/style.css
где я на самом деле хочу, чтобы это было
/translate/css/style.css
Для этого забрать файл с сервера 8077. Что я могу сделать с текущими настройками, чтобы заставить это работать?
1 ответ
Хорошо, это то, что я сделал, чтобы это заработало
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap http://www.example.com:8087 /translate/
<Location /translate/>
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap http://www.example.com:8077 /translate/
ProxyHTMLURLMap / /translate/
ProxyHTMLURLMap /translate/ /translate/
RequestHeader unset Accept-Encoding
</Location>
Кажется, это хорошо работает. ProxyHTMLURLMap http://www.example.com:8077/ / translate / line был необходим только для перевода некоторых URL-адресов на основе "реферера", из-за которых некоторые страницы пытались обслуживать напрямую с сервера портов 8077.