http 压缩 共享主机 apache/php

http 压缩 共享主机 apache/php

我正在嗅探我的一个网站的响应头,显然没有使用 http 压缩来传递响应,因为我在响应头中没有看到 Content-Encoding: gzip。

但奇怪的是 phpinfo() 显示 HTTP_ACCEPT_ENCODING: gzip,deflate,sdch

我正在使用 rackspace 云站点(共享主机,无法访问 httpdconfig),我真的很想激活 http 压缩,但是那边的支持人员告诉我,如果 phpinfo() 说了,那就说明它已经打开了。

谢谢。!

答案1

HTTP_ACCEPT_ENCODING表示浏览器接受这些编码。这并不意味着服务器就是sending这些编码 - 这是客户端标头。

答案2

您应该做的是将此 php 代码添加到您想要使用压缩的任何 PHP 文件的最开头:

<?php
   ob_start("ob_gzhandler");
?>

通常情况下,所有文件都会包含一个头文件,一个很好的例子就是数据库配置文件。只要在程序执行或之前添加这行代码,print()那么echo()你就成功了。

这将缓冲 PHP 页面构建的所有输出,然后在将其发送到浏览器之前对其进行 gzip 压缩。如果您只提供平面 html 文件,那么您可以编写一个简单的 PHP 访问页面来读取 .html 文件并打印它:

<?php
   ob_start("ob_gzhandler");
   print(file_get_contents("./html/somefile.html")); 
?>

相关内容