我试图做一个反向代理到我的路由器的Web界面与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 /下的所有内容而不是根目录
我已经尝试了几件事,但没有任何工作,我非常感谢任何帮助
.css和.js文件的URL由路由器本身生成,它们位于路由器发送给客户端的HTML代码中。
Apache不会使用ProxyPassReverse修改HTML响应正文,它只会修改响应标头。
你需要使用Apache的mod_substitute来replace响应主体。 你可以在https://httpd.apache.org/docs/current/mod/mod_substitute.htmlfind更多的信息。
在为mod_substitute指定规则时需要小心,因为以不正确的方式更改HTML正文可能导致整个pipe理界面无法正常工作。
更好的方法是使用反向代理的子域名。