Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Версия Laravel: 5.3
Версия PHP: 7.*
Операционная система и её версия: Хостинг, linux
Вендор и версия сервера БД: mysql
Задача, что должно происходить:
В web.php прописаны маршруты, если введен маршрут который в web.php не описан,
мне бы хотелось сделать redirect('/'), подскажите пожалуйста, как?
Код:
Routes:
Route::get('/', ['as' => 'posts', 'uses' => 'HomePageController@index']);
Route::get('/registration', ['as' => 'posts', 'uses' => 'RegistrationController@index']);
Route::post('/registration', 'RegistrationController@create');
Route::get('/login', ['as' => 'posts', 'uses' => 'LoginController@index']);
Route::post('/login', 'LoginController@loginUser');
Route::get('/{id}', 'ProfileController@showPage')->where('id', '[0-9]+');
Route::post('/{id}', 'ProfileController@showTrack')->where('id', '[0-9]+');
Route::get('/new_order', 'NewOrderController@createOrder');
Route::post('/new_order', 'NewOrderController@addOrder');
Route::get('/admin_panel', 'AdminPanelController@index');
Route::get('/log_out', function (){
Session::flush();
return redirect('/');
});
Route::post('/admin_panel','AdminPanelController@orderProcessing');
Изменено DenisVASI (25.01.2017 02:31:10)
Не в сети
У самого долгое время не доходили руки сделать такое, но была на одном простом сайте задача повесить красивую страницу на несуществующие роуты
Добавил в роут вот такой код
Route::get('/{pageNotFount}', ['as' => 'test', 'uses' => 'TestController@test']);
Сайт небольшой и такой финт там сработал, попробуйте, возможно вам подойдёт
Контроллер отдавал вьюху
Не в сети
Если я такое сделаю, то вообще на другие адреса попасть не смогу или я не прав?
Не в сети
А вы поэкспериментируйте, поставьте этот код в конец роута ))
Не в сети
-- задача повесить красивую страницу на несуществующие роуты
resources/views/errors/404.blade.php
https://laravel.com/docs/5.3/errors
Custom HTTP Error Pages
-- для редиректа
http://stackoverflow.com/questions/2947 … -laravel-5
Изменено covobo (25.01.2017 23:41:25)
Не в сети
Если я такое сделаю, то вообще на другие адреса попасть не смогу или я не прав?
ларавель маршруты проверяет сверху вниз. какой первый подойдёт – тот и будет использоваться. соответственно маршрут, который ловит все запросы, должен быть последним. всё, что будет после него – не будет использоваться.
ещё имей в виду: перенаправлять на "/" можно только запросы на страницы. это можно проверить по заголовку Accept. например Safari когда запрашивает страницу, ожидает "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8". в принципе всегда когда в Accept есть text/html – это запрашивается страница. другое содержание заголовка может говорить о том что запрошено изображение (img-тэг), джаваскрипт (script), таблица стилей (link). часто браузеры и поисковики запрашивают фавиконки и robots.txt – в этом случае перехватчик должен отдавать редирект на что-то другое или ошибку 404 или ещё как-то осмысленный контент. также нет особого смысла перенаправлять аякс-запросы (есть заголовок X-Requested-With) и т.д. надо учитывать эти варианты в обработчике чтобы не было проблем
Не в сети
Страницы 1