我有一个代理规则,将 www.example.com/support 指向我们的第三方支持网站 (www.support.example.com/support)。查看页面源代码,所有链接都是相对的,例如:
<a href="/support/answers/subjectN">
但是,当通过代理导航到该站点并将鼠标悬停并单击链接时,它会恢复到第三方域。我已使用以下规则加载了 mod_proxy_http 模块,但它似乎也不起作用:
ProxyPass /support https://example.custhelp.com/support
ProxyPassReverse /app https://example.custhelp.com/support
<Location app/>
ProxyHTMLEnable On
ProxyHTMLURLMap https://example.custhelp.com/app/(.*)$ https://www.exmample.com/app/$1 [R]
ProxyHTMLURLMap / /app/
</Location>
答案1
这个问题实际上与以下事实有关:在 apache 中,您需要“SetOutputFilter”来实际告诉 apache 通过 mod_proxy_html 模块传递文档。我的测试浏览器启用了压缩,而 Web 服务器向客户端提供了压缩的页面,mod_proxy_html 将无法理解。此行解压缩文档(如果已压缩),通过 proxy-html 运行它,然后重新压缩它(如果支持)。
SetOutputFilter INFLATE;proxy-html;DEFLATE