Почему не работает 404 страница в MODX Revolution: пошаговое решение

    При создании сайта на CMS MODX Revolution многие сталкиваются с ситуацией, когда страница ошибки 404 настроена по гайду, но при вводе несуществующего адреса пользователь не перенаправляется на кастомную страницу. Вместо этого отображается стандартная ошибка сервера или пустой экран. Разберём основные причины и способы их устранения.

    Проверка системных настроек MODX

    Первым делом убедитесь, что в системных настройках указан правильный идентификатор ресурса для ошибки 404. Перейдите в Система → Системные настройки и найдите параметр error_page. Он должен содержать ID вашей кастомной страницы (например, 404). Также проверьте параметр unauthorized_page - он не должен конфликтовать с настройками 404.

    Важно: после изменения настроек обязательно очистите кеш MODX через меню «Очистить кеш».

    Настройка .htaccess и редиректов

    Если системные настройки верны, проблема может быть в файле .htaccess. Убедитесь, что в нём нет правил, которые перехватывают все запросы до того, как они доходят до MODX. Например, часто встречается директива RewriteRule .* - [R=404,L], которая блокирует обработку ошибок CMS. Добавьте или измените правило, чтобы MODX мог обрабатывать 404:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?_q=$1 [QSA,L]

    После изменений перезапустите Apache или проверьте через .htaccess tester.

    Проверка плагинов и событий

    Некоторые плагины могут переопределять стандартное поведение 404. Проверьте список активных плагинов, особенно те, которые работают с событиями OnPageNotFound или OnHandleRequest. Если плагин перехватывает запрос и выводит свой контент, страница 404 может не срабатывать. Временно отключите подозрительные плагины и протестируйте снова.

    Дополнительные советы по устранению неисправностей

    • Убедитесь, что страница 404 опубликована и не скрыта от поиска.
    • Проверьте, что у страницы 404 есть шаблон, который выводит контент.
    • Протестируйте с разными URL: /test123, /несуществующая-страница.
    • Используйте инструменты разработчика браузера (вкладка Network), чтобы увидеть код ответа сервера.

    Заключение

    Ошибка, когда 404 страница в MODX Revo не отображается, обычно связана с неправильной настройкой error_page, конфликтом в .htaccess или работой плагинов. После проверки всех трёх аспектов ваша кастомная страница ошибки начнёт корректно отображаться для всех несуществующих адресов.

    Часто задаваемые вопросы