Apache的Server头无法直接关闭或修改,必须启用mod_headers模块并设置ServerTokens Prod和ServerSignature Off来最小化暴露信息,Header指令对Server头无效。

Apache的Server头默认无法直接关闭或修改
XAMPP默认启用mod_headers和mod_setenvif,但Server响应头由Apache核心控制,不能用Header set Server覆盖。强行配置会无效,甚至触发Invalid command 'Header'错误(如果mod_headers未启用)。
必须先启用mod_headers模块
编辑xampp\apache\conf\httpd.conf,找到这行并取消注释:
#LoadModule headers_module modules/mod_headers.so
改为:
LoadModule headers_module modules/mod_headers.so
否则后续所有Header指令都会报错。注意:Windows下该模块名不含.dll后缀,Linux下是.so,XAMPP统一用.so写法。
用ServerTokens和ServerSignature控制暴露程度
真正影响Server头内容的是这两个指令,它们在httpd.conf中默认已存在,但值较宽松:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
ServerTokens Full→ 返回类似Apache/2.4.58 (Win64) OpenSSL/3.0.13 PHP/8.2.12 -
ServerTokens Prod→ 仅返回Apache(推荐) -
ServerSignature Off→ 禁用错误页底部的Server信息(必须设为Off)
修改后需重启Apache,且ServerTokens Prod是唯一被Apache官方认可的“隐藏版本号”方式——不要试图用Header edit去替换,它对Server头无效。
Header edit不适用于Server头,但可用于其他自定义头
如果你真要加或改非Server的头(比如X-Powered-By、Strict-Transport-Security),可用Header指令:
<IfModule headers_module><br> Header always set X-Content-Type-Options "nosniff"<br> Header always set Referrer-Policy "no-referrer-when-downgrade"<br> Header edit Set-Cookie "(.*)$" "$1; HttpOnly; Secure"<br></IfModule>
注意:Header edit只对能被匹配和重写的响应头生效;Server头不在可编辑列表里,这是Apache内核限制,不是XAMPP的bug。
真正想彻底抹掉Server头,得编译时禁用--disable-server-signature,或者用mod_security规则拦截响应——但XAMPP不带mod_security,也不建议普通用户折腾。Prod模式+Off签名,已是实用边界。

















