[РЕШЕНО] 404 страница в 1.4.0

Всем привет!

Случайно обнаружилось, что в 1.4.0 не работает 404 страница.

В 1.4.0 RC2 работала, а здесь уже не работает.

Обнаружил, что в кабинете Яндекс-вебмастер полезли в индекс левые страницы:



Проверил на bertal.ru — код ответа 200:



Как исправить?

На 1.4.2 страница 404 вроде работает, но переходить на 1.4.2 пока не могу — там другие ошибки, о которых писали разные люди, а сайт рабочий. Нет возможности на эксперименты.

UPD:

У меня на сайте есть отправка форм через Ajax, решение взял отсюда. Ошибки возникали из-за строки кода в начале плагина:

if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
    die(); //Здесь ошибка
}


Чтобы не мешать работе 404 страницы, код плагина надо немного изменить:

if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
    return;
}

9 комментариев

avatar
На 1.4.2 страница 404 вроде работает, но переходить на 1.4.2 пока не могу — там другие ошибки, о которых писали разные люди, а сайт рабочий. Нет возможности на эксперименты.
avatar
Проверьте плагины на событии OnPageNotFound. Например, те которые работают на приём Ajax.
avatar
Точно! я забыл про АЯКС-отправку форм через плагин на OnPageNotFound. Я использовал решение отсюда, код проверять не стал.

А нужно было проверить. Я написал коммент по этому поводу.
avatar
Проверил у себя версия EVO 1.4.0. 404-страница работает нормально.
avatar
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
    return;
}

"&&" => "||"?
avatar
Кстати да, не заметил. Исправляю.
avatar
Этот баг был в 1.4.0. Портился системный редирект на 404-е страницы стандартным методом

Pathologic исправил его тут github.com/evolution-cms/evolution/commit/d77f599ebcd7afda1135fc0167c4e87a823bba4d
Комментарий отредактирован 2018-04-02 15:03:00 пользователем alexbeep
avatar
Не совсем понял. То есть, даже при ошибочном коде в плагине, с этой правкой системы стандартное 404 всё равно сработало бы?
Комментарий отредактирован 2018-04-02 16:56:28 пользователем Aharito
avatar
Да, насколько я понял, был испорчен системный метод редиректа на страницу 404
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.