在 laravel 路由中使用正则表达式
use regular expression in laravel routing
我有一些遗留路由,我应该将它们全部重定向到页面 404。它们都以 admin
和 user
开头。执行此操作的最佳做法是什么?
例如无论如何都可以使用正则表达式吗?
因此 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.*');
我有一些遗留路由,我应该将它们全部重定向到页面 404。它们都以 admin
和 user
开头。执行此操作的最佳做法是什么?
例如无论如何都可以使用正则表达式吗?
因此 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.*');