自定义404页面未在Apache中进行GZIP

时间:2015-03-14 23:42:35

标签: php apache http-status-code-404 gzip

我自己写了一个自定义的404页面,但是我注意到,当我返回状态代码404时,该页面没有得到GZIPed。即使我确定它应该是。

(我正在将所有请求重定向到index.php,然后解析URI,并在需要时通过header()发出404,所以我没有使用ErrorDocument,虽然我已经使用ErrorDocument进行了测试并且发生了同样的问题。)

有谁知道这是否是一个已知的'功能',PHP / Apache中的错误或我自己的代码?

我正在使用PHP5.5.9 / Apach2.4.7在Ubuntu上,Apache配置为使用mod_deflate。

这是一个简单的测试脚本:

<?php

header("HTTP/1.1 404 Not found");

print "WILL THIS BE GZIPED! ".str_repeat('X',500);

?>

如果您注释掉标题404(以便它获得正常的200响应),则会返回压缩的页面。

我也尝试过使用PHP {gt> = 5.4的新http_response_code(404);命令,但这没有帮助。

我已经在Chrome /开发者工具中进行了测试,并且还直接使用Curl来测试它是否被压缩,但事实并非如此。没有响应标头'Content-Encoding:gzip',所以我猜它的Apache没有压缩它。

对我而言,这不是一个主要问题,因为我希望不要让太多人试图链接到产生404错误的页面,但如果它确实正确压缩会很好。

我想我可以在PHP中自己进行压缩,但是想看看它是不是一个bug或者我先做错了什么。

(注意,你必须确保响应是> 256个字节才能让Apache进行压缩,这就是str_repeat位是什么)

0 个答案:

没有答案