Laravel:如何根据路由响应自定义404错误

时间:2013-07-31 13:49:41

标签: laravel laravel-4 http-status-code-404 laravel-routing

我正在使用Laravel4框架,我遇到了这个问题。

我想根据请求的网址显示自定义404错误。

例如:

Route::get('site/{something}', function($something){
    return View::make('site/error/404');
});

Route::get('admin/{something}', function($something){
    return View::make('admin/error/404');
});

'$something'的值并不重要。

所示示例仅适用于一个细分,即'site/foo''admin/foo'。 如果有人请求'site/foo/bar''admin/foo/bar' laravel将抛出默认的404错误。

App::missing(function($exception){
    return '404: Page Not Found';
});

我试图在Laravel4文档中找到一些东西,但没有什么是适合我的。 请帮助:)

谢谢!

1 个答案:

答案 0 :(得分:28)

app/start/global.php

App::missing(function($exception) 
{
    if (Request::is('admin/*'))
    {
        return Response::view('admin.missing',array(),404);
    }
    else if (Request::is('site/*'))
    {
        return Response::view('site.missing',array(),404);
    }
    else
    {
         return Response::view('default.missing',array(),404);
    }
});

在您看来,您可以$something{{ Request::path(); }}

找到{{ Request::segment(); }}