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.

Другие вопросы по тегам