ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 404 Not Found 处理器 [Edit This Page](https://github.com/slimphp/Slim-Website/tree/gh-pages/docs/handlers/not-found.md) 如果你的 Slim 应用程序没有可以匹配到当前 HTTP 请求 URI 的路由,程序会调用 Not Found 处理器,并返回一个 `HTTP/1.1 404 Not Found` 响应到 HTTP 客户端。 ## 默认的 Not Found 处理器 每个 Slim 框架应用程序都有一个默认的 Not Found 处理器。这个处理器将响应状态设置为 `404`,并将内容类型设置为 `text/html` ,它将写入一个简单的异常信息到响应体。 ## 自定义 Not Found 处理器 Slim 框架应用程序的 Not Found 处理器是一个 Pimple 服务。 你可以通过应用程序容器对自定义 Pimple factory 方法进行定义,来创建自定义的 Not Found 处理器取代默认的。 ``` $c = new \Slim\Container(); //Create Your container //Override the default Not Found Handler $c['notFoundHandler'] = function ($c) { return function ($request, $response) use ($c) { return $c['response'] ->withStatus(404) ->withHeader('Content-Type', 'text/html') ->write('Page not found'); }; }; //Create Slim $app = new \Slim\App($c); //... Your code ``` 在这个例子中,我们定义了一个新的 `notFoundHandler` factory ,它将返回一个 callable 。返回的 callable 接收2个参数: 1. 一个 `\Psr\Http\Message\ServerRequestInterface` 实例 2. 一个 `\Psr\Http\Message\ResponseInterface` 实例 这个 callable **必须** 返回一个恰当的 `\Psr\Http\Message\ResponseInterface` 实例。