在 Laravel 中处理不匹配的路由
Laravel 的 Route::fallback
提供了一种优雅的方式来处理与任何定义的路由都不匹配的请求。你可以为遇到缺失页面的用户创建有意义的体验,而不是显示通用的 404 页面。
当页面被移动或重命名,或者处理旧系统的遗留 URL 时,此功能对于保持用户参与度特别有价值。它还有助于收集缺失页面的数据,为网站的结构和内容策略提供信息。
Route::fallback(function () {
return view('errors.404')
->with('message', 'Page not found');
});
你还可以使用 Request 对象来获取更多上下文:
use Illuminate\Http\Request;
Route::fallback(function (Request $request) {
// Access current path
$path = $request->path();
// Check if it's an API request
if ($request->expectsJson()) {
return response()->json(['error' => 'Not Found'], 404);
}
return view('errors.404', compact('path'));
});
此 fallback 路由 handler 将可能令人沮丧的 404 体验转化为用户参与和有价值的分析见解的机会。