Страница 1 из 1

Как работает ЧПУ

Добавлено: 24.01.2023, 11:01
korshunov
На форуме частенько проскальзывает мысль, что система ЧПУ в OkayCMS очень уж хороша. Но если присмотреться повнимательнее, то не все так безоблачно.

На демосайте на странице ЧПУ устанавливаю
Настройка ЧПУ для категорий - https://demookay.com/category,
Настройка ЧПУ для брендов - https://demookay.com/brand-name.
Первой категории в списке устанавливаю URL - test1,
Первому бренду в списке устанавливаю такой же URL - test1.
В результате адрес первой категории и адрес первого бренда полностью совпадают. По этому одинаковому адресу https://demookay.com/test1 открывается страница категории. А страница бренда недоступна в принципе...

Если другому бренду попробовать установить тот же URL, то он не запишется и выйдет сообщение об ошибке. А вот совпадение с URL категории никак не контролируется, а надо бы...

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

Добавлено: 25.01.2023, 10:02
OkayCMS
Там специальное есть переключатель "Уникальное окончание всех ЧПУ" для таких случаев

Добавлено: 25.01.2023, 12:40
korshunov
Пробую применить указанную настройку.
На демосайте сначала устанавливаю галочку "Уникальное окончание всех ЧПУ". Затем провожу действия, описанные в первом посте. Результат - в точности та же самая ошибка.

Добавлено: 23.08.2023, 07:19
korshunov
Обнаружился еще такой недостаток ЧПУ:

На демо сайте в админке открываю страницу Доставка, меняю URL на dostavka2, сохраняю. После этого на витрине на разных страницах в подвале показывается старая ссылка https://demookay.com/dostavka, по которой выходит 404.

Добавлено: 29.12.2023, 15:21
korshunov
Уже почти год прошел с момента написания первого поста темы. Разработчики никак не спешат реагировать.

Обнаружился еще один недостаток в (само) хваленой системе ЧПУ в OkayCMS.
Допустим, захотелось сделать какой-то URL со слешем на конце. Для создания URL-шаблонов, как известно, служит Okay/Core/config/routes.php. Редактируем один из маршрутов в нем так:
'contact' => [
'slug' => '/contact/my/',
'params' => [
'controller' => 'FeedbackController',
'method' => 'render',
],
],

После этого ожидается, что шаблонная вставка {url_generator route='contact'} даст ссылку /contact/my/, но не тут-то было. Финальный слеш Okay молча съедает.

Причина в том, что в Smarty-плагине url_generator разработчики в нескольких местах старательно убирают концевой слеш.
Таким образом, разрекламированная гибкость ЧПУ дает еще одну трещину...