#php #laravel
#php #laravel
Вопрос:
Недавно мы включили название блога вместе с идентификатором в URL-адрес блога. Например, старый URL:
www.domain.com/blog-details/12
Измененный URL:
www.domain.com/blog-details/12/title
Теперь я хочу перенаправить старый URL-адрес блога на измененный URL-адрес блога на веб-сайте laravel, если мы нажмем старый URL-адрес блога, он должен перенаправить на новый URL-адрес блога.
Комментарии:
1.laravel.com/docs/5.8/redirects ?
2. 1. Вы изменили маршруты?
Ответ №1:
Вам нужно создать маршрут для обработки www.domain.com/blog-details/12
, получить правильное название блога и затем перенаправить.
Если вы можете использовать привязку модели, что-то подобное должно выполнить эту работу
Route::get('/blog-details/{blog}', function (Blog $blog) {
return redirect("/blog-details/$blog->id/$blog->title");
});
В противном случае вы можете получить элемент блога самостоятельно, а затем перенаправить
Route::get('/blog-details/{id}', function ($id) {
$blog = Blog::findOrFail($id);
return redirect("/blog-details/$blog->id/$blog->title");
});
Вы можете прочитать больше о перенаправлениях здесь;https://laravel.com/docs/5.8/redirects
Комментарии:
1. Спасибо за предложения. в настоящее время мой маршрут выглядит следующим образом: Route::get(‘blog-details/{id}/{title?}’, ‘ShowBlogController@getBlogDetailsData’)->name(‘blog-details’);
Ответ №2:
Вы можете использовать перезапись URL-адресов с помощью .htacess Apache или .conf Nginx
Комментарии:
1. Плохая идея. Веб-сервер не знает динамически добавляемых заголовков базы данных. Должно быть выполнено в коде PHP.