我正在尝试做一些我认为很简单的事情。我只想更改ServerApache 为每个请求发送的标头。这是我的httpd.conf文件中的一行:
Header always set Server "My Server name"
但是,这是Server标题中返回的内容:
Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
顺便说一句,这就是我正在使用的软件(多么方便)。我确实启用了 mod_headers,它适用于我的配置文件中的其他指令。
编辑:我在 Ubuntu Server 8.04 LTS x64 上运行它。
为什么这不起作用?
那是因为 Apache 的政策是不对 Server 标头撒谎并始终设置它。你能做的最好的事情就是让它只显示“Apache”:
ServerSignature Off
ServerTokens Prod
Run Code Online (Sandbox Code Playgroud)
正如常见问题解答和错误报告中所说,让 Apache 发送“我的服务器名称”的唯一方法是修改源。
另请注意,让您的服务器不说您正在使用 Apache,您不会获得任何好处,通过默默无闻的安全性并不是真正的安全性。如果您试图隐藏您的操作系统或 php 或 ssl 版本,以防出现错误,这也不是很有用,因为人们倾向于尝试进入他们遇到的每台服务器。