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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: