Я конвертирую старый проект в laravel и хочу создать 301-й маршрут для перенаправления старого URL-адреса.
старый URL: example.com/index.php?id = {id}
новый URL: example.com/index/{slug}
Я пробую что-то вроде:
Route::get('index.php?id = {id}', function($id){
$slug = {where I select slug from id}
return Redirect::to('/index/'.$slug, 301);
});
Но не работает, URL не распознается.
запрос на получение slug var
не понял тебя .
Это не актуально, проблема в том, что URL-адрес не распознается, а не запрос, который я использую для получения переменной slug, передающей идентификатор
в чем ошибка
Извините, страница, которую вы ищете, не может быть найдена.






Вы делаете это немного неправильно, для этого вам нужен не маршрут, а промежуточное ПО.
php artisan make:middleware Redirect
public function handle( $request, Closure $next )
{
if ( preg_match( '#index.php\?id=(\d+)#is', $request->fullurl(), $matches ) ) {
return redirect()->to( "/index/{$matches[1]}", 301 );
}
return $next( $request );
}
добавить промежуточное ПО в Http Kernel
в защищенном промежуточном программном обеспечении $?
Я установил лучший ответ, но регулярное выражение не работает в моем случае, мне пришлось изменить на: if (preg_match ('/index.php\?id=(\d+)/', $ request-> fullurl (), $ matches)) { (БЛАГОДАРНОСТЬ!)
У меня не было времени на тесты. Я обновил ответ, с уважением.
что ты имеешь в виду под {запросом} ?? Вы имеете в виду id, который передается?