我们在本地服务器中启用了 gzip 和 deflate,它在 phpinfo 中正确显示,如下所示 HTTP_ACCEPT_ENCODING gzip,deflate,sdch
我们在客户端服务器上安装了相同的程序,但客户端服务器的 phpinfo 中没有这样的条目。经过一番研究,我们发现我们的代理服务器阻止了 phpinfo 中的此条目。我们公司使用透明代理(大多数公司都会这样做)来控制互联网流量。如果启用此代理,phpinfo 中会缺少 HTTP_ACCEPT_ENCODING 设置。当我们禁用代理时,客户端服务器的 phpinfo 中会显示相同的条目。这似乎有点奇怪
有人能告诉我们一个解决方案吗,即使打开了代理,我们也可以获得相同的设置?
提前致谢,RT
答案1
听起来代理正在从 HTTP 请求中剥离“Accept-Encoding”标头,因为它不能或不想处理 gzip 编码的内容。
如果您无权重新配置代理,那么您对此无能为力。您需要能够配置代理以允许 gzip 编码的内容或不触碰 Accept-Encoding 标头。
当 phpinfo() 报告 $_SERVER['HTTP_ACCEPT_ENCODING'] 的值时,它所做的只是告诉您想要从客户端(或代理)收到的 HTTP“Accept-Encoding”标头的值。代理在技术上不会修改 phpinfo() 的输出,它只会影响请求。