3

如果这个问题之前已经被问过(找不到任何类似的问题),或者只是非常明显,我只是一个问这个问题的白痴,请提前道歉。

我正在使用 Apache 2.4 反向代理几个内部页面和 Web 应用程序。我启用了很多代理模块,包括 mod_proxy_html 以根据需要重写 HTML。代理的每个页面或 Web 应用程序都在块内。

一般来说,这很好用。链接工作,资源加载,他们应该等等等等。但是其中一些 Web 应用程序使用 AJAX 来实现一些不错的 UX 功能,这些 AJAX 请求中的大多数都会访问代理的 JSON 端点。

我的问题是:任何代理的 JSON 响应都包含在

<html><body><p>{ "Example": "Yes" }</html></body></p>

我不知道这些 HTML 标签是从哪里来的,我试图摆脱它们的一切都没有奏效。我已经尝试过 LocationMatch 块并明确设置 ProxyHTMLEnable Off 并删除替代输出过滤器。

有没有办法明确禁用特定 URL 的响应正文重写/替换?

4

3 回答 3

1

我有同样的问题。经过两天的测试,我找到了解决方案。

在 Location 区域你需要评论

#SetOutputFilter  proxy-html

我只有以下几行

< Location /blabla >
    #ProxyHTMLEnable off
    ProxyPassReverse /
    #SetOutputFilter  proxy-html
    ProxyHTMLURLMap  /externalBlaBla/  /blabla/
    ProxyPassReverseCookiePath / /blabla
< /Location >
于 2016-06-30T10:52:47.857 回答
0

通过注释掉 SetOutputFilter proxy-html 您只是禁用链接的重写,因此 proxy_html 什么都不做。

于 2017-05-30T20:59:30.837 回答
0

这似乎是https://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/讨论的问题。

对于现代版本的软件(因为在 2011 年 mod_proxy_html 移至 apache.org 之前的某个时间),推荐的修复是 xml2StartParse 指令。

话虽如此,如果 ProxyHTMLEnable Off 没有修复它(在服务器重新启动后),您还会遇到与配置指令范围相关的其他问题。

PS 为什么我可以使用 Facebook 的 Google 在这里“注册”,但不能使用 OpenID?谷歌和 Facebook 付给你多少钱来敲诈我?

于 2015-09-25T08:09:03.577 回答