PHP header()修改HTTP头 如何覆盖web服务器输出的头字段

都被占用想不到好的了 2008-12-17 09:31:45
PHP输出时欲覆盖服务器的HTTP Header,故写如下代码:

<?php
header("Server: custom-server", true);
var_dump(headers_list());
?>

访问此页面得到http response headers:
HTTP/1.1 200 OK
Connection: close
Date: Wed, 17 Dec 2008 01:21:38 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-Powered-By: PHP/5.1.2
Server: custom-server
Content-type: text/html

页面输出:
array(2) {
[0]=>
string(23) "X-Powered-By: PHP/5.1.2"
[1]=>
string(21) "Server: custom-server"
}

可以看到response header依然存在两个Server field,说明第二个参数为true的header函数并没有覆盖web服务器输出的Server field。
而从页面输出headers_list()来看,貌似web输入的HTTP header在代码处理之后。

现在是问题:请问如何才能覆盖web服务器输出的HTTP header?
...全文
1037 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zijian_Zhang 2008-12-22
  • 打赏
  • 举报
回复
PHP大多改不了,用htaccess文件控制可能还可以
jiang_jiajia10 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fxs_2008 的回复:]
这个好象不行,盖不了
如果可以的话,你可让apache禁止发送server信息
[/Quote]
UP
海诗美妆 2008-12-17
  • 打赏
  • 举报
回复
这种信息从PHP改不了也是正常的,
lz还是根据IIS的规则改信息吧
  • 打赏
  • 举报
回复
IIS设置里的“自定义HTTP头”并没有Server段,同时,“Date”、“Connection”也是同样的问题
syu 2008-12-17
  • 打赏
  • 举报
回复
看他信息是IIS的.主机头里去掉原信息.

如果apache的话.倒可以在配置或.htacess里送 Header unset 指令
yctin 2008-12-17
  • 打赏
  • 举报
回复
不行 HTTP header 在没运行 header() 时已传送给客户端
只能在 web server 更改 HTTP header
fxs_2008 2008-12-17
  • 打赏
  • 举报
回复
这个好象不行,盖不了
如果可以的话,你可让apache禁止发送server信息

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧