Создание, сопровождение и продвижение сайтов на CMS Drupal

Ошибка на сайте. «Страница не найдена»

Ошибка Drupal. Страница не найдена.Решил делать небольшие заметки под тегом «напоминалки». В основном это будут заметки на решение какой-то небольшой проблемы, с которой пришлось столкнуться во время работы.

Первая напоминалка:
«На все запросы к сайту, даже к главной странице выдает сообщение «Страница не найдена», при этом дизайн сайта остается нормальным».

У меня это произошло без видимых причин – никаких модулей не ставил, добавлял поле к одному из типов материала.

Решение оказалось достаточно простым – необходимо выполнить update.php.
Так как доступ к инсталляционному профилю был потерян, то апдейт возможно выполнить только изменив настройку в settings.php
$update_free_access = TRUE;
Не забудьте вернуть значение обратно
$update_free_access = FALSE;

Объснение данного феномена привел direqtor :

Тут есть некоторая семантическая неточность.

То что хранит в себе menu_router, есть привязка вызовов функций к путям на сайте. К меню, т.е. к блокам со ссылками на разделы сайта, это имеет отдалённое отношение. Если у элемента массива из hook_menu type=MENU_NORMAL_ITEM (умолчание), то он будет отображен в меню. А в общем случае – это просто путь, к которому привязана функция отдающая контент страницы. Но это основа Drupal-сайта.

При некоторых изменениях: включении-выключении-обновлении модулей, добавлении типов материала, страничных представлений и еще много чего, система путей на сайте перестраивается. Тогда и вызывается функция menu_rebuild, которая считыват hook_menu всех модулей и создаёт заново menu_router.
 

Да, данная ошибка приводит к подозрению, что ваш сайт взломали, но как видите это не так.