我正在尝试使用子目录 /lan/ 中的 apache 为我的路由器的 Web 界面创建反向代理
我的路由器的 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://我的域名/.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/ 下的所有内容,而不是 root 下的所有内容
我尝试了几种方法,但都没有奏效,我真的很感激任何帮助
答案1
.css
和文件的 URL.js
由路由器本身生成,它们位于路由器发送给客户端的 HTML 代码内。
Apache 不会用 修改 HTML 响应主体ProxyPassReverse
,它只会修改响应标头。
您需要使用 Apachemod_substitute
来替换响应主体。您可以在以下位置找到更多信息:https://httpd.apache.org/docs/current/mod/mod_substitute.html。
指定规则时需要小心mod_substitute
,因为以不正确的方式更改 HTML 主体可能会导致整个管理界面无法正常工作。
更好的方法是使用子域名作为反向代理。