内容目录
Apache 反向代理替换响应内容里的域名
通过反向代理可以将请求转发给后端真实的服务器。 但是服务器响应内容可能直接返回原始的域名,导致浏览器请求绕过反向代理。
有些应用可能通过获取请求头里的 Host, X-Forwarded-Host, X-Forwarded-Server 变量来生成正确的响应内容。
但是有些应用可能不支持,导致浏览器请求绕过反向代理。
可以通过 Apache 的 ProxyPassReverse 防止重定向绕过反向代理。 然后通过 Apache 的 Substitute 模块改写响应内容,防止页面引用的元素绕过反向代理。 https://www.docs4dev.com/docs/zh/apache/2.4/reference/mod-mod_substitute.html
AddOutputFilterByType INFLATE;SUBSTITUTE;DEFLATE text/html text/plain text/xml application/xml
Substitute "s|origin.example.com/|www.example.com/|ni"
如果原站没有备案信息,可以顺便在底部添加备案信息。
Substitute "s|</body>|<center><a href=http://beian.miit.gov.cn/ rel=external nofollow noopener noreferrer target=_blank>京ICP备XXXXXXXX号-1</a></center> </body>|"