• Решено Broker_tert

    (@broker_tert)


    Добрый день. Не выводится страница ошибки 404
    Помогите пожалуйста исправить…

    Cоставлена страница 404.html
    Сама страница в корне сайта: http://belgrupp.by/404.html
    Файл .htaccess так же расположен в корне
    В файле .htaccess добавил строку:
    ErrorDocument 404 /belgrupp.by/404.html

    Также существует стандартная страница 404.php которая лежит в папке с темой:
    http://belgrupp.by/wp-content/themes/west/404.php
    Не работает…

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • судя по белой странице у вас ошибка в коде 404.php или еще что. посмотрите логи ошибок сервера.

    ErrorDocument 404 /belgrupp.by/404.html

    Пропишите абсолютный адрес или путь к файлу 404.html от корня сайта.

    • Ответ изменён 8 лет, 3 месяца назад пользователем SeVlad.

    Спасибо за совет, как-то не подумал логи глянуть.
    Было написано: PHP Fatal error: Call to undefined function get_header()
    Снес из 404.PHP весь код и залил HTML, может и не правильно, но работает ровно.

    А как можно было в 404.PHP подтянуть страницу 404.html ?
    Писал: $HTML->SendFile(‘404.html’); Не отображается…

    Пробовал прописывать: ErrorDocument 404 /(http://belgrupp.by/404.html)
    не проходит…

    А как можно было в 404.PHP подтянуть страницу 404.html ?

    ???
    В 404.php вставьте «тело» 404.html.
    Из хтацесса уберите ваши добавки.

    https://codex.wordpress.org/Creating_an_Error_404_Page

    В общем легче не становится…
    Отдельно страницы теперь отображаются корректно:
    http://belgrupp.by/wp-content/themes/west/404.php
    http://belgrupp.by/404.html
    Но при вводе заведомо несуществующих страниц, составленные страницы не подтягиваются…

    что-то непонятно — почему у вас выдает ошибку:

    
    PHP Fatal error: Call to undefined function get_header()
    

    то? все содержимое 404.php можете тут привести в тегах code?

    Но при вводе заведомо несуществующих страниц, составленные страницы не подтягиваются…

    Не «не подтягиваются», а ошибки. http://codex.wordpress.org/%D0%A7%D0%90%D0%92%D0%9E/%D0%91%D0%B5%D0%BB%D1%8B%D0%B9_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD

    Потому что http://belgrupp.by/wp-content/themes/west/404.php Вы сделали не пправильно. Вы убили ВСЁ. Я же говорил только про ТЕЛО.

    В общем так.
    1. Создайте дочернюю тему.

    2. Если какие-то файлы темы правились — скопируйте их в дочку (кроме стилей и файла функций — см внимательнее документ выше)

    3. Верните ВСЕ файлы темы на место.

    4. скопируйте из родительской 404.php и в строках 10-29 замените на Ваш код из <boby>

    ЗЫ. Хотя такая 404 — это плохо. Как минимуму сайдбар стоит оставить.

    Да! При необходимости можно в дочке отредактировать header.php изменив шапку для 404 https://developer.wordpress.org/reference/functions/get_header/
    Тоже и для футера можно.

    Но если Вы хотите именно такую простую, то всё же лучше сделать через хтацесс.

    А, да! Есть ещё плагины для создания 404. Но это ИМХО совсем лишнее.

    • Ответ изменён 8 лет, 3 месяца назад пользователем SeVlad.

    я думаю, что вам надо убрать директиву ErrorDocument 404 из .htaccess
    404 ошибку должен обрабатывать wordpress, а не сервер.
    поэтому у вас и ошибка PHP — потому что файл 404.php вызывается не движком, а сервером напрямую.

    Модератор Yui

    (@fierevere)

    永子

    логика работы 404 при включеном ЧПУ не страдает от директивы ErrorDocument 404
    index.php не станет передавать 404 на вебсервер, хотя на некоторых конфигурациях возможны ответы 404 от вебсервера напрямую для статических файлов jpg|jpeg|png|gif| итд

    Итого: затрачено уйма времени, а результата нет.
    Создана дочерняя тема west-chaild
    Стандартная страница 404.php и не думает открываться, это с учетом, что я в ней вообще ничего не менял.
    Все должно быть гораздо проще… Алгоритм типа: если есть запрашиваемая страница, то открыть; иначе открыть страницу 404.php

    Все получилось, за 5 минут и пару кликов решены все вопросы.
    Плагин для вордпресс: 404 Plugin for WordPress, Автор: Fakhri Alsadi

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Алгоритм типа: если есть запрашиваемая страница, то открыть; иначе открыть страницу 404.php

    В общем случае (на чистой установке) движок именно это и делает.

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Тема «Как вывести страницу 404» закрыта для новых ответов.