Basically, if no route is matched, then fallback function is a way to override default 404 page and introduce additional logic.
In your routes/web.php file, at the very end, after all the routes, you can specify something like this:Route::group(['middleware' => ['auth'], 'prefix' => 'admin', 'as' => 'admin.
'], function () { Route::get('/home', 'HomeController@index'); Route::resource('tasks', 'Admin\TasksController'); }); // Some more routes.... Route::fallback(function() { return 'Hm, why did you land here somehow?
'; });And if someone enters random URL like yourdomain.com/abcde12345, here’s what will show up:Note, that this Route::fallback() method should go at the very end of routes file, after everything.
Another side effect of this: instead of just default 404 page, this Route::fallback() will follow all the Middlewares in ‘web’ group, from 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, ],
Newsletter

Get the latest Laravel/PHP jobs, events and curated articles straight to your inbox, once a week

Community Partners