我想删除以下标题:
Connection: Keep-Alive
Server: Apache/2.2.13 (Win32)
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=66
答案 0 :(得分:4)
我不认为这可以在PHP中正确完成,因为这些标头是由Apache设置的。
PHP 5.3的header_remove()
但是只能删除由PHP设置的标头(如果我理解正确的话)。您还可以通过使用空值再次发送它们来覆盖不需要的标头,但无论如何都会发送原始值。
最好的办法是在Apache的配置中修复这个问题。例如,ServerTokens
指令可以更改“Server:”标头。
答案 1 :(得分:2)
您可以将脚本转换为非解析标头CGI。为此,您必须将example.php
脚本重命名为nph-script.cgi
,将其设为可执行文件(+ x)并添加shebang:
#!/usr/bin/php-cgi
<?php
这要求您自己发送所有 http标头,包括HTTP/1.0 200 OK
状态行。 (参见rfc2616 php.ini config)
哦,实际上我不知道这是否适用于当前的Apache版本。
答案 2 :(得分:0)
使用PHP(或任何其他服务器站点语言)并发送标题Connection:close。这将导致Apache省略Keep-Alive标头,因为连接不再是keepalive。 e.g。
header('Connection: close');
不确定它是否适用于所有类型的服务器,建议欢迎。
阅读更多here