我的Apache反向代理将代码添加到从head标记获取的HTML文件体中

我的Apache反向代理将代码添加到从head标记获取的HTML文件体中,html,apache,proxy,reverse-proxy,Html,Apache,Proxy,Reverse Proxy,我有一个使用Apache2.4.20的简单反向代理服务器,它从内部ApacheWeb服务器获取HTML文件。页面抓取和URL重写工作正常,但出现了一个问题 在任何网页通过代理后,有三件事是不正确的:头标签的内容出现在主体中,头标签丢失,并且在主体标签的顶部添加了一个神秘的“>”字符 这个额外的代码对我来说意味着HTML标记的检测有问题(它可能是的一部分)。而且,即使head标签中没有内容,body标签仍然以奇怪的代码开头 代理内容-在开发者工具、Google Chrome浏览器中查看: 代理内

我有一个使用Apache2.4.20的简单反向代理服务器,它从内部ApacheWeb服务器获取HTML文件。页面抓取和URL重写工作正常,但出现了一个问题

在任何网页通过代理后,有三件事是不正确的:头标签的内容出现在主体中,头标签丢失,并且在主体标签的顶部添加了一个神秘的“>”字符

这个额外的

代码对我来说意味着HTML标记的检测有问题(它可能是
的一部分)。而且,即使head标签中没有内容,body标签仍然以奇怪的代码开头

代理内容-在开发者工具、Google Chrome浏览器中查看:

代理内容-获取文件的原始来源:

原始HTML文件-直接从内部服务器文件系统打开:

代理服务器配置文件-关于传输和
ProxyHTML的部分

我知道原始服务器工作正常,因此这不会导致问题。
以下是直接从原始服务器在浏览器(在代理服务器设备上)中查看的HTML文件的屏幕截图,以及Chrome Developer Tools中显示的源代码:

更新:正如预期的那样,mod_proxy_html是我的问题的主要原因(在原始文件中关闭它)。但是,这对我来说不是一个解决方案,因为我需要工具来重写代理文档中的相对URL引用。我读了这本书,但它没有描述任何毫无疑问导致我的问题的特性


我认为不相关的mod_proxy_html指令列表,一些经过测试:ProxyHtmlBuffSize、ProxyHTMLCharsetOut、ProxyHtmlOctype、ProxyHTMLEnable、ProxyHtmlLevents、ProxyHtmlExtrade(默认关闭)、ProxyHTMLFixups(根据建议尝试)、ProxyHtmlLintERP、ProxyHtmlLnks、ProxyHtmlMetadata(默认关闭)、ProxyHtmlTripComments、,ProxyHtmlURL映射。

您正在使用mod\u proxy\u html

此mod将根据指令尝试影响通过代理的HTML资源。我的建议是删除ProxyHTML指令,看看会有什么结果。如果它不受影响,那么您知道它与mod_proxy_html有关

然后看看在ProxyHTMLEnable下面添加这个指令

ProxyHTMLFixups off

我也有同样的问题。然而,在同一台机器上,使用相同反向代理的其他站点运行良好,即使它们的配置完全相同,但URL不同。我不明白。。。除非我注意到有问题的文件在文件开头有错误

这导致ProxyHTML非常混乱,以至于它删除了
标记

使用
dos2unix
实用程序删除BOM表后,文件显示正确


你的帖子给了我更多的动力来与之抗争。谢谢。

您的问题是文档类型定义

<!DOCTYPE html/>

不应关闭标记。应该是这样的:

<!DOCTYPE html>


mod_proxy_html试图通过将它包装在段落中来修复它所看到的额外的
字符。

正如我所怀疑的,mod_proxy_html导致了我的问题(关闭它解决了问题)。不过,这不是我的解决方案,因为我需要它来重写代理文档中的相对URL引用。另外,尝试关闭
ProxyHTMLFixups
也不起作用(看看它,我不明白它为什么会导致错误)。从整体上看,我不知道是什么原因导致了我的问题。我现在已经使我的文章更清晰,格式更好,希望它更有用,更容易思考。如果你有任何想法,你可以提供更多。我目前无法访问上面提到的服务器,但这个问题应该是可以重现的。我现在已经使我的帖子更清晰,格式更好,希望它更有用,更容易思考。我目前无法访问提到的服务器,但问题应该是可重现的。是的,我确认存在相同的问题。这是一件非常奇怪的事情,因为我对其他站点也使用了相同的反向代理,而且这些站点运行良好(没有删除),并且它们具有相同的设置。我通过验证器运行了html文件,它没有给出任何警告,但是,proxyhtml去掉了和,没有什么好的理由,也没有什么好的结果。