Laravel默认路由到404页面

时间:2014-11-06 01:14:23

标签: laravel routes http-status-code-404

我使用Laravel 4框架并且我已经定义了一大堆路由,现在我想知道所有未定义的URL,如何将它们路由到404页面?

5 个答案:

答案 0 :(得分:20)

在Laravel 5.2中。不做任何事只是在errors文件夹中创建文件名404.blade.php,它会自动检测404异常。

答案 1 :(得分:9)

未定义的路由使用App :: error()方法触发您可以在app / start / global.php中处理的Symfony\Component\HttpKernel\Exception\NotFoundHttpException异常,如下所示:

/**
 * 404 Errors
 */
App::error(function(\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $exception, $code)
{
   // handle the exception and show view or redirect to a diff route
    return View::make('errors.404');
});

答案 2 :(得分:6)

可以在Laravel文档中找到推荐的处理错误的方法:

http://laravel.com/docs/4.2/errors#handling-404-errors

以下列方式使用start / global.php文件中的App :: missing()函数:

App::missing(function($exception)
{
    return Response::view('errors.missing', array(), 404);
});

答案 3 :(得分:6)

根据官方documentation

你只需添加一个文件:resources / views / errors / 调用404.blade.php,其中包含您要在404错误上显示的信息。

答案 4 :(得分:3)

我已将laravel 4代码库升级到Laravel 5,对于任何关心的人:

App::missing(function($exception) {...});
在Laravel 5中

不再可用,为了返回所有不存在路由的404视图,请尝试在app / Http / Kernel.php中添加以下内容:

public function handle($request) {
    try {
        return parent::handle($request);
    }
    catch (Exception $e) {
        echo \View::make('frontend_pages.page_404');
        exit;
        // throw $e;
    }
}