Ошибка 404 или Not Found (не найдено) стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу. Пользователи наиболее часто сталкиваются с ошибкой 404 при посещении битых или мертвых ссылок и делая ошибку 404 одной из наиболее узнаваемых ошибок в сети Интернет.
В wordpress есть своя собственная страница ошибок, она находится в папке с активным на данный момент шаблоном. Но не во всех шаблонах есть страница ошибок и даже если она есть то не всегда она работает. Почему же так происходит я задался этим вопросом и далеко не сразу нашёл ответ! Поэтому я постараюсь объяснить суть почему так происходит и как это исправить.
1. WordPress для функционирования страницы 404 нужен файл .htaccess с точкой в начале, и ни как не htaccess.txt, без него не будет работать чпу и страница 404. Так как mod_rewrite данный модуль представляет собой основанный на правилах механизм (синтаксический анализатор с применением регулярных выражений), выполняющий URL преобразования на лету. Модуль поддерживает неограниченное количество правил и связанных с каждым правилом условий, реализуя действительно гибкий и мощный механизм управления URL. URL преобразования могут использовать разные источники данных, например переменные сервера, переменные окружения, HTTP заголовки, время и даже запросы к внешним базам данных в разных форматах, — для получения URL нужного вам вида.
2. Нужен файл 404.php который должен находиться в шаблоне.
3. WordPress не создаёт автоматически .htaccess
От теории к созданию.
К сожалению при установке wordpress сам не создаёт файл .htaccess, ни при установке на денвере ни на хостинге, проверял несколько раз. Для этого авторизуйтесь у себя в админке http://Ваш сайт.ru/wp-login.php и зайдите Параметры/постоянные ссылки внизу будет сообщение:
Если бы ваш файл .htaccess был доступен для записи, мы могли бы выполнить следующий шаг автоматически, но это не так. Вот правила mod_rewrite, которые должны быть в файле .htaccess. Кликните на поле и нажмите CTRL + a, чтобы выделить весь текст.
К сожалению правде это не соответствует и он не создаёт этот файл во всяком случае на версии 3.2.1 поэтому скопируйте код который будет чуть ниже и сохраните его как .htaccess и поместите в корневую папку сайта.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Создание самой страницы 404 wordpress. WordPress если существует в шаблоне файл 404.php сам его вызовет при ошибке. Сам файл можно оформить как вам угодно. Для примера можно оформить так:
<!--Основной файл index.php через который подключаются все остальные файлы шаблона своего рода точка входа в шаблон--> <!--Подключение файла header.php get_header(); который по умолчанию идёт как шапка сайта, в нём располагаются описание, подключение родных скриптов и стилей--> <?php get_header(); ?> <!--Подключение основного файла который выводит контент, навигацию и всё остальное, так же можно подключить таким образом любой нужный файл. --> <div id="content"> <h1>ошибка 404</h1> </div> <!-- Файл get_sidebar(); sidebar.php это файл по умолчанию для создания блоков меню виджетов плагинов, с ним можно разбить сайт на 2 - 3 блока. get_footer(); footer.php файл по умолчанию который является футером сайта. --> <?php get_footer(); ?>
Пример взят из создания шаблона если что то не понятно то можете посмотреть в статье
Это всё что нужно для создания страницы 404 wordpress, может показаться запутанным, но таков сам wordpress.
Источник: joomla-umnik.ru