Я пытаюсь сделать обратный прокси-сервер для веб-интерфейса моего маршрутизатора с apache в подкаталоге / lan /
IP-адрес моего маршрутизатора - 172.16.0.1, доступ к нему можно получить через http://172.16.0.1/
Чтобы добиться этого, я использую следующие директивы:
<Location /lan>
ProxyPass http://172.16.0.1
ProxyPassReverse http://172.16.0.1
</Location>
Проблема в том, что это переписывает http://172.16.0.1/.js или http://172.16.0.1/.css в https: //my.domain/.js или https: //my.dmain/.css вместо https: //my.domain/lan/.js и https: //my.domain/lan/.css
Я смог настроить эту точную настройку для работы с pihole с помощью следующих директив:
<Location /pi-hole>
ProxyPass http://172.16.81.53/admin/
ProxyPassReverse http://172.16.81.53/admin/
</Location>
и он правильно переписывает все в / admin / вместо корня
Я пробовал несколько вещей, но ничего не помогло, я был бы очень признателен за любую помощь
URL-адреса для .css
и .js
Файлы создаются самим маршрутизатором и находятся внутри HTML-кода, который маршрутизатор отправляет вашему клиенту.
Apache не изменяет тела ответа HTML с помощью ProxyPassReverse
, он изменяет только заголовки ответов.
Вам нужно использовать Apache mod_substitute
для замены тела ответа. Вы можете найти больше информации об этом на сайте https://httpd.apache.org/docs/current/mod/mod_substitute.html.
Будьте осторожны при указании правил для mod_substitute
, поскольку неправильное изменение тела HTML может привести к неправильной работе всего интерфейса администратора.
Лучшим способом было бы использовать поддомен для обратного прокси.