我有一个基本路由,看起来像这样:
逻辑是我希望
我尝试使用
Route::prefix('/group')->group(function () {
// Some routes here
Route::prefix('/{uuid}')->group(function () {
// Some routes here
Route::get('/user/{id}', 'Controller@preview')->name('view-user')->where('id', '[0-9]+');
}
}
逻辑是我希望
id
只能是数字值。现在我想做的是,如果值是非数字,则声明重定向到此值。假设id
的输入是fs
。在这种情况下,我想将其重定向到具有值1
的id
。我尝试使用
Route:redirect
,但无法使其工作。它看起来像这样:Route::redirect('/group/{uuid}/user/{id}', '/group/{uuid}/user/1')->where('id', '[^0-9]+');
我更倾向于将重定向放在组内,但如果这是唯一的方法,它也可以放在组外。任何帮助都将不胜感激。
问题是,如果我声明了路由重定向,就会出现404错误。
编辑: 我想在routes/web.php
文件中执行此操作。我知道如何在控制器中执行此操作,但在当前情况下这不是我所需要的。闭包也不是一个选择,因为会防止路由缓存。