# 405 Not Allowed 處理器
[Edit This Page](https://github.com/slimphp/Slim-Website/tree/gh-pages/docs/handlers/not-allowed.md)
如果你的 Slim 框架應用程序有一個路由匹配到了當前的 HTTP 請求 URI **而非 HTTP 請求方法**,程序將調用 Not Allowed 處理器并返回一個 `HTTP/1.1 405 Not Allowed` 響應到 HTTP 客戶端。
## 默認的 Not Allowed 處理器
每個 Slim 框架應用程序都有一個默認的 Not Allowed 處理器。該處理器將 HTTP 響應狀態設置為 `405`,將內容類型設置為 `text/html`,它還會添加一個包含由逗號分隔的已被允許訪問的 HTTP 方法組成的列表的 `Allowed:` HTTP 頭它還會在 HTTP 響應體中寫入一個簡單的注釋。
## 自定義 Not Allowed 處理器
Slim 框架應用程序的 Not Allowed 處理器是一個 Pimple 服務。你可以通過應用程序容器對自定義 Pimple factory 方法進行定義,來創建自定義的 Not Allowed 處理器取代默認的
```
// Create Slim
$app = new \Slim\App();
// get the app's di-container
$c = $app->getContainer();
$c['notAllowedHandler'] = function ($c) {
return function ($request, $response, $methods) use ($c) {
return $c['response']
->withStatus(405)
->withHeader('Allow', implode(', ', $methods))
->withHeader('Content-type', 'text/html')
->write('Method must be one of: ' . implode(', ', $methods));
};
```
> **注意** Check out [Not Found](/docs/handlers/not-found.html) docs for pre-slim creation method using a new instance of `\Slim\Container`
在這個例子中,我們定義了一個新的 `notAllowedHandler` factory ,它將返回一個 callable 。返回的 callable 接收兩個參數:
1. 一個 `\Psr\Http\Message\ServerRequestInterface` 實例
2. 一個 `\Psr\Http\Message\ResponseInterface` 實例
3. 一個由已允許訪問的 HTTP 方法名組成的數組
這個 callable **必須** 返回一個恰當的 `\Psr\Http\Message\ResponseInterface` 實例。