Ошибка на сайте. «Страница не найдена»
Решил делать небольшие заметки под тегом «напоминалки». В основном это будут заметки на решение какой-то небольшой проблемы, с которой пришлось столкнуться во время работы.
Первая напоминалка:
«На все запросы к сайту, даже к главной странице выдает сообщение «Страница не найдена», при этом дизайн сайта остается нормальным».
У меня это произошло без видимых причин – никаких модулей не ставил, добавлял поле к одному из типов материала.
Решение оказалось достаточно простым – необходимо выполнить 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.
Да, данная ошибка приводит к подозрению, что ваш сайт взломали, но как видите это не так.
Комментарии
TVL У меня очень похожая ситуация: «На все запросы к сайту, даже к главной странице выдает сообщение «Страница не найдена», при этом дизайн сайта остается нормальным». Наступила она после установки новых модулей. Админские странички отсвечиваются без этого ругательства ... update.php не помогает.
проблема с хостингом .. скорее всего не хватает памяти
Отправить комментарий