Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вопрос по странице 404й ошибки и не найденных категорий/товаров


dreb

Recommended Posts

Всем привет!

 

Уже второй день ищу информацию, но не могу найти ничего путного. Начну с того, что я только постигаю азы создания интернет магазинов и программирования в целом, прошу сразу не кидаться тапками, если это элементарщина B)

В общем, появился такой вопрос. Имеем оформленную страницу =error/not_found , если в адресной строке пишем что нибудь типа: сайт.ком/рандомный_текст - правильно подгружает эту страницу:

 

2020-05-21_21-14-15.thumb.png.94e0bfaf0a5e371315f5a9346bb290c1.png

 

Но, если в адресную строку пишем сайт.ком/index.php?route=product/category&path=несуществующий_айди , то открывается страница по роуту =product/category с текстом, что категория не найдена, соответственно так же и с товарами, и со статьями. Изначально верстка не подразумевала, что эти страницы так же будут выводить и ошибки, и получается нечто нелицеприятное. (причем, я так понял, загружается часть not_found.tpl, потому что  пытаются подгрузиться переменные, которые у меня там указаны и прописаны в not_found.php, но которых нет в category.php, соответственно получается ошибка):

 

2020-05-21_21-15-31.thumb.png.5b4b83e02d3217d0e37486188af6aaac.png

 

В конечном итоге, сайт будет работать с ЧПУ SEO PRO by Freelanser, и маловероятно, что кто либо попытается вручную перейти на сайт.ком/index.php?route=product/category&path=несуществующий_айди , но тем не менее, хотелось бы исключить такую возможность.

 

В общем-то вопрос и сам напрашивается, возможно ли как то сделать, что бы в таком случае подгружалась =error/not_found , и если да, то как?

P.S. На сайт зайти не пытайтесь, он пока на локальном сервере :)

Надіслати
Поділитися на інших сайтах


в первом случае у вас проходит через контроллео
А во втором - только шаблон, а контроле not_found остается в стороне

Надіслати
Поділитися на інших сайтах

1 час назад, chukcha сказал:

в первом случае у вас проходит через контроллео
А во втором - только шаблон, а контроле not_found остается в стороне

 

Как это работает я вроде как понимаю, но не до конца :) Загадкой для меня остаётся, как контроллер категорий подгружает часть вьюхи not_found

 

47 минут назад, Otvet сказал:

Ну можно попробовать после

 


$this->response->setOutput($this->load->view('product/category', $data));
		} else {

вставить


			return $this->load->controller('error/not_found');

 

 

Опробовал этот способ, сработало, но не так как хотелось бы. Теперь текст подгружается из not_found, ошибки по переменным пропали, но всё форматирование страницы осталось от category

2020-05-21_23-37-00.thumb.png.bc696d731d62c808613b5e1fe8ac3597.png

 

Вообще, насколько я понимаю, надо сделать редирект на страницу с ошибкой, только как это организовать, даже представить не могу 

 

Надіслати
Поділитися на інших сайтах


1 час назад, Otvet сказал:

Ну можно попробовать после

 


$this->response->setOutput($this->load->view('product/category', $data));
		} else {

вставить


			return $this->load->controller('error/not_found');

 

$this->request->get['route'] = 'error/not_found';

Но как-то костыльно смотрится
 

Надіслати
Поділитися на інших сайтах

уж лучше чем на этапе чпу-контроллера организовывать проверки существования/включенности по id

 

 

 

3 часа назад, dreb сказал:

 

Вообще, насколько я понимаю, надо сделать редирект на страницу с ошибкой

 

НЕТ!

Надіслати
Поділитися на інших сайтах

@chukcha @Otvet  Спасибо огромное, решение, вроде как получилось рабочим! 

 

11 часов назад, chukcha сказал:

$this->request->get['route'] = 'error/not_found';

 

Но как-то костыльно смотрится
 

 

Что одному костыль, другому гениальный код :) Мне кажется, если копнуть магазин что я верстаю, то можно сделать целый "Сборник костылей 2020, актуальные хиты" :-D

 

8 часов назад, Otvet сказал:

НЕТ!

 

Категорично. Хотелось бы узнать почему так, плохо влияет на SEO?

Надіслати
Поділитися на інших сайтах


14 hours ago, dreb said:

Как это работает я вроде как понимаю, но не до конца :) Загадкой для меня остаётся, как контроллер категорий подгружает часть вьюхи not_found

 

Значит не понимаете.
Екшн контроллера категорий не находит категорию за указанным идентификатором, после чего указываются заголовки и данные передаются во вьюху.
Вот эти данные вы можете изменить. Вот пример

Сбросим левую колонку перед тем как отправить данные
$data['column_left'] = '';

Теперь у Вас будет страница ошибки,  с пустой левой колонкой.

Контроллер только указывает какую вьюху ему грузить и передает данные.

$this->response->setOutput($this->load->view('error/404', $data));

Смотрите сам файл вьюхи not_found.twig

 

Контроллер собирает все в массив $data, после чего отдает все это добро вьюхе, потому Вам нужно заботится о переменных в not_found.php перед загрузкой самой вью

14 hours ago, dreb said:

(причем, я так понял, загружается часть not_found.tpl, потому что  пытаются подгрузиться переменные, которые у меня там указаны и прописаны в not_found.php, но которых нет в category.php, соответственно получается ошибка):

Надіслати
Поділитися на інших сайтах


5 часов назад, dreb сказал:

Категорично. Хотелось бы узнать почему так, плохо влияет на SEO?

Потому что важен  первый ответ а не отображение страницы.
и. Г может посчитать его как Soft 404
 

Надіслати
Поділитися на інших сайтах

В 22.05.2020 в 14:54, korya сказал:

 

Значит не понимаете.
Екшн контроллера категорий не находит категорию за указанным идентификатором, после чего указываются заголовки и данные передаются во вьюху.
Вот эти данные вы можете изменить. Вот пример

Сбросим левую колонку перед тем как отправить данные
$data['column_left'] = '';

Теперь у Вас будет страница ошибки,  с пустой левой колонкой.

Контроллер только указывает какую вьюху ему грузить и передает данные.

$this->response->setOutput($this->load->view('error/404', $data));

Смотрите сам файл вьюхи not_found.twig

 

Контроллер собирает все в массив $data, после чего отдает все это добро вьюхе, потому Вам нужно заботится о переменных в not_found.php перед загрузкой самой вью

 

В 22.05.2020 в 17:12, chukcha сказал:

Потому что важен  первый ответ а не отображение страницы.
и. Г может посчитать его как Soft 404
 

 

Спасибо за развёрнутые ответы!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.