Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.01.2017 02:30:13

Обработка маршрутов не заданных в web.php

Версия 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)

Не в сети

#2 25.01.2017 05:03:34

Re: Обработка маршрутов не заданных в web.php

У самого долгое время не доходили руки сделать такое, но была на одном простом сайте задача повесить красивую страницу на несуществующие роуты
Добавил в роут вот такой код

Route::get('/{pageNotFount}', ['as' => 'test', 'uses' => 'TestController@test']);

Сайт небольшой и такой финт там сработал, попробуйте, возможно вам подойдёт
Контроллер отдавал вьюху

Не в сети

#3 25.01.2017 12:26:32

Re: Обработка маршрутов не заданных в web.php

Если я такое сделаю, то вообще на другие адреса попасть не смогу или я не прав?

Не в сети

#4 25.01.2017 18:13:50

Re: Обработка маршрутов не заданных в web.php

А вы поэкспериментируйте, поставьте этот код в конец роута ))

Не в сети

#5 25.01.2017 23:38:16

Re: Обработка маршрутов не заданных в web.php

-- задача повесить красивую страницу на несуществующие роуты
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)

Не в сети

#6 26.01.2017 10:44:24

Re: Обработка маршрутов не заданных в web.php

DenisVASI пишет:

Если я такое сделаю, то вообще на другие адреса попасть не смогу или я не прав?

ларавель маршруты проверяет сверху вниз. какой первый подойдёт – тот и будет использоваться. соответственно маршрут, который ловит все запросы, должен быть последним. всё, что будет после него – не будет использоваться.

ещё имей в виду: перенаправлять на "/" можно только запросы на страницы. это можно проверить по заголовку 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) и т.д. надо учитывать эти варианты в обработчике чтобы не было проблем

Не в сети

Подвал раздела