【问题标题】:What is setting Content-Encoding to "none" in my HTTP response header?什么是在我的 HTTP 响应标头中将 Content-Encoding 设置为“none”?
【发布时间】:2014-09-09 23:24:48
【问题描述】:

我在 LAMP 堆栈上有 WordPress。不知何故,“Content-Encoding”在 HTTP 响应标头中返回值为“none”。

  1. 我在 WordPress 核心、主题或任何插件中找不到任何有问题的代码
  2. 我在 .htaccess 中没有看到任何此类指令
  3. 我不知道有任何 Apache 配置会导致值为“none”

想法?智慧?威士忌?

提前致谢。

【问题讨论】:

  • Tomcat 在哪里发挥作用?而且,这个标题给你带来了什么问题?您是否偶然向 HTTP/1.0 客户端提供请求?可能只是未启用压缩响应。
  • Wordpress 与 tomcat 无关。
  • 确实,WordPress 与 Tomcat 无关。 'LAMP' 参考中的 'A' 是针对 Apache Tomcat 的,这也是事实,并且 Tomcat 是能够更改相关响应标头的堆栈组件之一。

标签: php wordpress apache .htaccess


【解决方案1】:

可能是您在 PHP 中禁用了 gzip 压缩。这可以设置 Content-Encoding 标头。

zlib.output_compression

【讨论】:

  • 谢谢。不过,我不相信它会产生“无”的值。
【解决方案2】:

您的陈述似乎是错误的。

if (ini_get('output_buffering') && !isset($agent['bot']))
{ 
    ob_end_clean(); 
    header('Content-Encoding: none');
    $do_gzip_compress = false;
}

if (GZIPSUPPORT && !ini_get('zlib.output_compression') && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && preg_match('/gzip/i', $_SERVER['HTTP_ACCEPT_ENCODING'])) 
{
    if (version_compare(PHPVERS, '5.0.0', '>=')) 
    {   # PHP 4.2.x seems to give memleak
        ob_start('ob_gzhandler');
    } 
    else 
    {
        $do_gzip_compress = true;
        ob_start();
        ob_implicit_flush(0);
        header('Content-Encoding: gzip');
    }
} 
else 
{
    ob_start();
    ob_implicit_flush(0);
}

【讨论】:

  • 如果您根本不使用任何标头压缩,则没有一个是完全有效的
猜你喜欢
  • 2017-09-02
  • 2020-02-11
  • 2011-11-09
  • 1970-01-01
  • 2012-12-26
  • 2016-11-05
  • 1970-01-01
  • 2020-07-15
相关资源
最近更新 更多