Назад | Перейти на главную страницу

Apache неправильно переписывает URL-адреса в прокси

Я пытаюсь сделать обратный прокси-сервер для веб-интерфейса моего маршрутизатора с 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 может привести к неправильной работе всего интерфейса администратора.

Лучшим способом было бы использовать поддомен для обратного прокси.