Ответ 1
В OctoberCMS и Laravel, на которых он основан, для перенаправления одного маршрута в другой вы можете сделать это:
// Redirect /deals2, /deals3, ... to /deals
Route::get('{dealSlug}', function($dealSlug) {
return redirect('deals');
})->where('dealSlug', '^deals[0-9]+');
// Redirect homepage to /deals
Route::get('/', function() {
return redirect('deals');
}
Первый маршрут использует параметр маршрута с ограничение regex и перенаправляет любой запрос, начинающийся с /deals
, и заканчивается номером ваш маршрут /deals
. Это означает, что он отправит /deals1
, /deals2
, /deals3
и т.д. На /deals
.
Второй маршрут перенаправит вашу домашнюю страницу на /deals
.
Конечно, перенаправление будет стоить дополнительный запрос. Если вы не хотите этого делать, вы можете сделать перенаправление в Apache или Nginx.
В соответствии с вашим комментарием, если вы хотите перенаправить /deals[any-number]/[anything]
в /deals/[that-same-anything]
, вы добавите параметр // The new first route
Route::get('{dealSlug}/{extra?}', function($dealSlug, $extra = '') {
return redirect('deals/' . $extra);
})->where('dealSlug', '^deals[0-9]+');
Конечно, если этот маршрут /deals/[anything]
не существует, тогда вы получите 404.