Выдаётся 500 ошибка вместо 404 для InvalidRoute

Всем боброго бремени с уток!

В общем, есть сайт, на нём всё свежее.

Есть роутинг и все дела.

Запрашиваю несуществующую страницу, выдаёт site/error, внизу в debug-плашке показывает, что статус 404.

Теперь запрашиваю заголовки несуществующей страницы, получаю: 500 Internal Server Error. (Такую же хрень получает, например, «Яндекс» при проверке несуществующей страницы (проверка ответа сервера).)

Лезу в лог, а там: 2016-06-14 10:59:52 [...][][][error][yii\web\HttpException:404] exception ‘yii\base\InvalidRouteException’ with message ‘Unable to resolve the request: /’ in ////vendor/yiisoft/yii2/base/Controller.php:125 — то есть, лог утверждает, что вернул 404, а на самом деле отдалась 500.

Как найти причину? Помогите советом!

Проверьте через другие сервисы (например, через bertal.ru), так как Яндекс может «глючить», у меня уже был прецедент.

Не, та же фигня везде: HTTP/1.1 500 Internal Server Error

Я по-всякому пробовал и wget, и get_headers(), и кучей разных сервисов, — везде показывается 500, а в логах 404 «Страница не найдена.»

И, что самое интересное, на этом же сервере живёт другой проект на Yii2, он так же обновлён и всё такое. Так вот, на нём всё показывается правильно!

Всё отличие между роутингами проектов:

  1. в одном суффикс .html, а в другом /

  2. в одном статические правила, а в другом используется класс по этому гайду: http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#creating-rules

В общем, я всё разрулил. Факап мой, но отсутствие отображаемой ошибки сильно удлинило процесс поиска…

Штука в следующем: для страницы ошибки используется отдельный лейаут. В процессе его создания я забыл добавить одну очень банальную строку:


$this->beginPage();

И всё… Ошибка не отображается, эксепшнов нет никаких, вообще ничего нет, кроме того, что статус становится 500 Internal Server Error.

В общем, я не уверен, что это вообще как-то можно (нужно) исправить со стороны фреймворка. Тем не менее, Yii приучил меня уже, что по любому поводу, даже для нотисов, я получаю ошибку (эксепшн) и знаю, где и что исправлять…