我正在尝试使用apache mod_include。我试图在我的test_local.shtml(server1)中包含一些来自test_remote.shml(server2)的简单文本。使用mod_include和mod_proxy包含远程.shtml文件时出现乱码文本
test_local.shtml:
<html>
<head>
<title></title>
</head>
<body>
<!--#include virtual="http://www.server2.com/test_remote.shtml"-->
</body>
</html>
test_remote.shtml:
<b>this is a test</b>
起初,它没有工作(有 “文件不存在” 错误error_log中)。 看起来出于安全原因,我管理的唯一文件位于本地服务器(server1)上,具有本地路径,但不是远程URL。 然后我明白我需要将mod_proxy(和mod_proxy_html)与mod_include结合使用,以实现远程包含工作。
所以我增加了以下我的httpd.conf(Server1上):
ProxyPass /server2 http://www.server2.com
然后,我改变了包括test_local.shtml到行:
<!--#include virtual="/server2/test_remote.shtml"-->
没有错误这一次,东西得到包括,但由此产生的文字全是乱码:
‹³I²+ÉÈ,V¢D…’Ôâý$;.j¿è
我在配置中丢失了什么?怎么了?
更新:我怀疑这是两个服务器之间发送(然后读取)数据的方式,如压缩或类似的。我检查了mod_deflate配置部分,它包含在两个服务器中,并且都是一样的。任何想法?谢谢
UPDATE 2:禁用server2上的SetOutputFilter DEFLATE,server1上的mod_include包含的文本是完全可读的。所以这就是问题的根源:我如何配置server1来处理gzip内容并正确显示它? (Hypotetically我想像某种inputfilter反对outputfilter ..)