我使用Laravel 4框架并且我已经定义了一大堆路由,现在我想知道所有未定义的URL,如何将它们路由到404页面?
答案 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;
}
}