Запрашиваю несуществующую страницу, выдаёт 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.
В общем, я всё разрулил. Факап мой, но отсутствие отображаемой ошибки сильно удлинило процесс поиска…
Штука в следующем: для страницы ошибки используется отдельный лейаут. В процессе его создания я забыл добавить одну очень банальную строку:
$this->beginPage();
И всё… Ошибка не отображается, эксепшнов нет никаких, вообще ничего нет, кроме того, что статус становится 500 Internal Server Error.
В общем, я не уверен, что это вообще как-то можно (нужно) исправить со стороны фреймворка. Тем не менее, Yii приучил меня уже, что по любому поводу, даже для нотисов, я получаю ошибку (эксепшн) и знаю, где и что исправлять…