Как настроить 401 код вместо 404 для гостя в MODX REVO

#MODx, #MODx Revo
Как настроить 401 код вместо 404 для гостя в MODX REVO

В MODX Revolution есть понятие "Группы ресурсов" - ресурсы, которые доступны для определенных Групп пользователей (как правило, авторизированных). Но если не залогиненный пользователь пытается получить доступ к странице из такой группы - MODX возвращает 404 ошибку вместо 401, выводя сообщение о том, что страница не найдена, а правильным поведением в данной ситуации является вывод сообещния, что для доступа к данной странице надо авторизироваться на сайте. ссылка

Как настроить 401 код вместо 404

Для страниц, где важно неавторизированному пользователю отображать форму для входа вместо 404 страницы, можно отказаться от использования группы ресурсов и в начало шаблона встроить свой рукописный некешируемый сниппет. Код такого сниппета приведен ниже:

if (isset($modx->user->id) && $modx->user->id > 0 // user must be logged in
    && ( $modx->user->isMember('Пользователи') 
        || $modx->user->isMember('Administrator') )){
        // user вошел как пользователь или админ - все ок
        return;
}
// не ок - возвращаем 401 ошибку
$modx->sendUnauthorizedPage();

Количество просмотров: 1 029

Автор статьи: Екатерина Шушкевич.

Руководитель проектов, технический директор, практикующий разработчик, преподаватель. Опыт в WEB-разработке — более 10 лет.

Поделиться в соцсетях: