在 laravel 路由中使用正则表达式

use regular expression in laravel routing

我有一些遗留路由,我应该将它们全部重定向到页面 404。它们都以 adminuser 开头。执行此操作的最佳做​​法是什么?

例如无论如何都可以使用正则表达式吗?

因此 Laravel 在关于 catch-all 路由的文档方面可能有点模糊,您可以使用以下(未经测试)捕获给定路由下方的任何可选路由并重定向回404 页面。

// Redirect all /admin routes
Route::get('admin/{any?}', function ($any = null) {
    return redirect('404');
})->where('any', '.*');

// Redirect all /user routes
Route::get('user/{any?}', function ($any = null) {
    return redirect('404');
})->where('any', '.*');

就我个人而言,我可能会在它到达 Laravel 之前通过 301 永久重定向设置一个重写,但这同时应该可以帮助你。

对我有用:

Route::get('{legacy}', function($legacy){
    //
})->where('legacy', 'user.*|admin.*');