Почему не работает 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 или работой плагинов. После проверки всех трёх аспектов ваша кастомная страница ошибки начнёт корректно отображаться для всех несуществующих адресов.