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

Posted

技术标签:

【中文标题】Laravel:如何根据路由响应自定义 404 错误【英文标题】:Laravel: How to respond with custom 404 error depending on route 【发布时间】:2013-08-01 02:10:15 【问题描述】:

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

我想根据请求的 url 显示自定义 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】:

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();

【讨论】:

对此有很好的讨论:blog.danharper.me/blog/2013/01/01/exceptions-in-laravel-4 谁有这个 Laravel 5.5 的更新版本...?

以上是关于Laravel:如何根据路由响应自定义 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 路由和 404 自定义错误

laravel 兜底路由

laravel 访问不存在的路由跳转问题!(异常处理)

Laravel Ajax 路由问题(404 响应)

Laravel 路由仅在 phpunit 测试期间返回 302 而不是 404 响应

如何在 Laravel 5.5 中为选定的请求类设置自定义响应