fallback 路由与 404 的区别

基本上,如果没有路由匹配,则 fallback 路由是一个覆盖默认 404 页面并引入其他逻辑的方法。 运作方式如下。

在 routes/web.php 文件的所有路由之后,你可以指定以下内容:

Route::group(['middleware' => ['auth'], 'prefix' => 'admin', 'as' => 'admin.'], function () {
    Route::get('/home', 'HomeController@index');
    Route::resource('tasks', 'Admin\TasksController');
});

// 更多路由……

Route::fallback(function() {
    return 'Hm, why did you land here somehow?';
});

如果有人输入 yourdomain.com/abcde12345 之类的随机网址,则会显示以下内容:

注意,此 Route::fallback() 方法应放在路由文件的最后。

这样做的另一个副作用是:不仅是覆盖默认的404页,此 Route::fallback() 将遵循 ‘web’ 组中所有来自 app/Http/Kernel.php 的中间件:

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
 \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // \Illuminate\Session\Middleware\AuthenticateSession::class,        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laraveldaily.com/route-fallback-...

译文地址:https://learnku.com/laravel/t/39591

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

还是在 Exception Handler 中重写 render function 实在...

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!