【发布时间】:2018-08-06 09:50:47
【问题描述】:
我有一些遗留路由,我应该将它们全部重定向到第 404 页。它们都以 admin 和 user 开头。这样做的最佳做法是什么?
例如反正有没有使用正则表达式?
【问题讨论】:
标签: laravel laravel-5 laravel-routing
我有一些遗留路由,我应该将它们全部重定向到第 404 页。它们都以 admin 和 user 开头。这样做的最佳做法是什么?
例如反正有没有使用正则表达式?
【问题讨论】:
标签: laravel laravel-5 laravel-routing
它对我有用:
Route::get('{legacy}', function($legacy){
//
})->where('legacy', 'user.*|admin.*');
【讨论】:
因此,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 永久重定向设置一个重写来做到这一点,但这同时应该对你有所帮助。
【讨论】: