在部署到服务器的时候,通常不想让别人知道后端程序采用什么语言开发的,因此请问大家,是否支持去除响应标头的Server值,比如TP框架的部署到服务器上是显示Apache或者Nginx. 那么webman开发的还是显示workerman,是否有方法可以去除或修改。 如果所示:
加个中间件就行了。 看源码是判断有没有设置header,没有header server 就会拼上这个
class ApiFormat implements MiddlewareInterface { public function process(Request $request, callable $handler): Response { /** * @var Response $response */ $response = $handler($request); $response->header('Server','charles'); return $response; } }
然后就会
感谢,这方法管用!这样就不必破坏源代码了
真机智
修改根目录下的/support/Response.php
<?php namespace support; /** * Class Response * @package support * @link https://www.workerman.net/doc/webman/response.html */ class Response extends \Webman\Http\Response { public function __construct($status = 200, $headers = array(), $body = '') { $headers['Server'] = 'nginx'; parent::__construct($status, $headers, $body); } }
https://www.workerman.net/doc/webman/others/autoload.html
嗯,这种方法也适用!感谢!
/support/Response.php这个文件是webman允许用户自定义的响应类; 它通过config/autoload.php配置,优先加载;比用中间件实现更靠谱。
好呢,感谢!
加个中间件就行了。 看源码是判断有没有设置header,没有header server 就会拼上这个
然后就会
感谢,这方法管用!这样就不必破坏源代码了
真机智
修改根目录下的/support/Response.php
https://www.workerman.net/doc/webman/others/autoload.html
嗯,这种方法也适用!感谢!
/support/Response.php这个文件是webman允许用户自定义的响应类;
它通过config/autoload.php配置,优先加载;比用中间件实现更靠谱。
好呢,感谢!