Картинка wordpress ошибка 404

I get 404 status when fetching images, and the http still contains that image. Image shows up in a browser, but the 404 code breaks some applications.

calls to wp-content/uploads/ are redirected in .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteRule (.*) /index.php?getfile=$1 [L]
</IfModule>

Why do I get a 404 status if the image is in there and is served?

asked Oct 13, 2010 at 13:59

naugtur's user avatar

2

Problem solved.

The plugin «User Access Manager» was found guilty of inserting a .htaccess file into wp-content/uploads/ and not handling calls properly afterwards.

I don’t know how UAM plugin could be fixed, but It’s ok to remove the .htaccess file. Nothing else depends on it. (at least in my case)

answered Oct 15, 2010 at 7:51

naugtur's user avatar

naugturnaugtur

1,1533 gold badges11 silver badges16 bronze badges

1

Log in to your WordPress root directory and rename .htaccess to something like .htaccess_old. Next, login to your WordPress admin area and navigate to Settings -> Permalinks
Next, choose a different permalinks structure from what you currently have and click the Save Changes button. Next, select the original permalinks structure you had and click the Save Changes button once more. Note, this will create a new .htacess file in your server. Fixes the images returning the 404 error. Cheers!

answered Jan 6, 2018 at 15:12

Freddy Muriuki's user avatar

I get 404 status when fetching images, and the http still contains that image. Image shows up in a browser, but the 404 code breaks some applications.

calls to wp-content/uploads/ are redirected in .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteRule (.*) /index.php?getfile=$1 [L]
</IfModule>

Why do I get a 404 status if the image is in there and is served?

asked Oct 13, 2010 at 13:59

naugtur's user avatar

2

Problem solved.

The plugin «User Access Manager» was found guilty of inserting a .htaccess file into wp-content/uploads/ and not handling calls properly afterwards.

I don’t know how UAM plugin could be fixed, but It’s ok to remove the .htaccess file. Nothing else depends on it. (at least in my case)

answered Oct 15, 2010 at 7:51

naugtur's user avatar

naugturnaugtur

1,1533 gold badges11 silver badges16 bronze badges

1

Log in to your WordPress root directory and rename .htaccess to something like .htaccess_old. Next, login to your WordPress admin area and navigate to Settings -> Permalinks
Next, choose a different permalinks structure from what you currently have and click the Save Changes button. Next, select the original permalinks structure you had and click the Save Changes button once more. Note, this will create a new .htacess file in your server. Fixes the images returning the 404 error. Cheers!

answered Jan 6, 2018 at 15:12

Freddy Muriuki's user avatar

Дек 10, 2020

Anna

7хв. читання

Ошибка 404: Как исправить в WordPress (3 метода)

Ошибка 404 в WordPress является одной из наиболее распространённых ошибок, с которой вы будете сталкиваться в интернете. Однако это не делает её менее раздражающей или неприятной, когда она появляется на вашем собственном веб-сайте. Хорошей новостью является то, что её исправление относительно простое, и процесс хорошо расписан для сайтов на WordPress.

В этой статье мы рассмотрим три способа исправления ошибки 404 в WordPress:

  1. Сброс настроек постоянных ссылок в WordPress (англ).
  2. Восстановление файла .htaccess (англ).
  3. Отключение тем и плагинов.

Однако, прежде чем закатывать рукава, мы поговорим о том, как работает ошибка 404 и какие причины её возникновения. Давайте перейдём непосредственно к этому!

Ошибка 404 это сообщение, которое появляется, когда вы пытаетесь получить доступ к странице, которую браузер не может найти. В зависимости от того, какой браузер вы используете, сообщение может незначительно отличаться. Например, Firefox отображает такой текст: «404 Not Found», а Chrome показывает сообщение — «404. That’s an error»:

Так выглядит ошибка 404 в Chrome

Эти сообщения об ошибках по умолчанию могут быть довольно неопределёнными, и любой веб-сайт может настроить собственную страницу ошибок 404 (англ). Это не является необходимым, но это позволяет объяснять посетителям, что сайт работает, и единственная проблема заключается в конкретной странице, которую они пытаются найти.

Независимо от того, как оно выглядит, существует много вещей, которые могут вызвать в WordPress сообщение: 404 ошибка. К ним относятся:

  • Неверный URL. В некоторых случаях ошибка может быть в дополнительной букве, набранной в URL страницы.
  • Проблемы с кэшированием. Иногда браузер может кэшировать страницу, к которой вы пытаетесь получить доступ, и пока она не найдена, вы будете видеть ошибку 404, даже если сайт работает для всех остальных.
  • Проблема с настройками сервера доменных имен (DNS). Возможно, информация о вашем домене ещё не обновилась в DNS, поэтому вы видите ошибку при попытке получить доступ к одной из страниц вашего сайта.
  • Проблемы с совместимостью в WordPress. В некоторых случаях проблемы с плагином или темой могут повлиять на то, как WordPress создаёт URL-адреса и постоянные ссылки для вашего сайта. Затем, если кто-либо попытается получить доступ к URL-адресу, который больше не работает, возникает ошибка 404 в WordPress.

Важно понимать, что ошибка 404 не уникальна только для WordPress. Она может возникать независимо от того, на какой платформе находится ваш сайт. Однако, если вы используете WordPress, у вас есть преимущество, так как существует множество способов решить эту проблему. Давайте поговорим о том, что делать, если вы столкнулись с ошибкой 404 в WordPress.

Что делать перед устранением ошибки 404 в WordPress

В следующих разделах вы будете редактировать некоторые файлы на бэкэнд WordPress. Мы проведем вас через весь процесс, и всё будет в порядке. Однако, когда вы решите редактировать конфиденциальные файлы в WordPress, лучше заранее создать резервную копию вашего сайта — на всякий случай.

Если у вас нет доступа к панели управления WordPress прямо сейчас, не волнуйтесь. В Hostinger существует несколько способов получить резервную копию вашего веб-сайта с панели управления хостингом.

Как получить резервную копию веб-сайта

После этого вам нужно будет загрузить и настроить FTP-клиент. Мы рекомендуем FileZilla (англ), так как он бесплатный и предлагает все функции, которые могут вам понадобиться. Если вы раньше не использовали FTP, вы можете ознакомиться с нашим подробным руководством о том, как получить доступ к сайту Hostinger напрямую. Затем, когда вы будете готовы, вы сможете приступить к исправлению ошибок WordPress 404.

Как исправить ошибку 404 в WordPress (3 метода)

В некоторых случаях ненайденные страницы в WordPress вскоре исчезают сами по себе. Обычно это происходит, если они вызваны ошибкой с вашим хостинг-провайдером. Прежде чем приступать к серьёзному устранению неполадок, мы рекомендуем вам попробовать обновить сайт, предоставив ему пять или десять минут, чтобы всё уладить.

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

1. Сбросьте настройки своих постоянных ссылок (пермалинков) в WordPress

Одной из наиболее распространённых причин ошибки WordPress 404 является проблема с тем, как WordPress генерирует ваши постоянные ссылки (англ). Как вы, возможно, знаете, WordPress предоставляет вам несколько вариантов форматирования ссылок ваших записей и страниц. Например, вы можете настроить платформу для использования простых числовых ссылок или указать название каждой записи в качестве URL-адреса:

Как переустановить постоянные ссылки

В любом случае первое, что вам нужно сделать, когда вы столкнётесь с ошибкой 404 в WordPress, это сбросить настройки ваших постоянных ссылок. Есть два способа сделать это: один через панель управления (Консоль), а другой через FTP. Если у вас есть доступ к панели управления, следуйте инструкциям в этом разделе. Еслм нет – вам следует перейти к методу номер два.

Если вы можете войти в свою панель инструментов, начните с перехода во вкладку Настройки> Постоянные ссылки. Обратите внимание на структуру, которую использует ваш сайт на данный момент. Вам нужно будет временно изменить её, чтобы сбросить настройки постоянных ссылок в WordPress, но вы измените её всего на мгновение.

Выберите параметр Простой в разделе Общие настройки и нажмите кнопку Сохранить в нижней части страницы:

Как временно изменить структуру ссылок

Страница перезагрузится. Затем вы можете продолжить и выбрать свой предыдущий тип постоянных ссылок и сохранить изменения ещё раз. Это всё, что требуется для сброса структуры ссылок на WordPress.

Теперь попробуйте просмотреть свой веб-сайт как обычно. Проверьте страницы, которые ранее выдавали ошибку 404. Если ошибка ушла, вы молодец – вам понадобилось минимум времени, чтобы её исправить!

2. Восстановите файл .htaccess в WordPress.

Когда вы вносите изменения в структуру постоянной ссылки в WordPress, они сохраняются в файл под названием .htaccess (англ). Этот файл определяет, как WordPress будет взаимодействовать со своим сервером, а также способ создания URL-адресов для страниц.

Если у вас нет доступа к панели управления, вам нужно будет вручную отредактировать .htaccess, чтобы переустановить постоянные ссылки. Чтобы начать работу, зайдите на свой сайт через FTP и перейдите в корневую папку WordPress. Это каталог, который содержит установку WordPress и обычно находится в папке public_html или www или назван в честь вашего сайта:

Как найти корневую папку WordPress

Откройте эту папку и найдите файл .htaccess. Если вы используете FileZilla, вам нужно щёлкнуть правой кнопкой мыши по файлу .htaccess и выбрать параметр Просмотреть / Изменить. Это означает, что вы загружаете копию файла на свой компьютер и открываете его с помощью локального текстового редактора по умолчанию. Теперь вы сможете внести любые изменения, которые вам нужны.

Если вы не понимаете, для чего нужен весь код в этом файле, не беспокойтесь. Вы не должны вносить в него никаких изменений, если вы не уверены в них на 100 %. Однако, что вы можете сделать, так это использовать код WordPress .htaccess, который выглядит следующим образом:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Это чистый файл .htaccess без каких-либо изменений. Он удалит любые изменения, внесённые в вашу структуру постоянной ссылки. Идём дальше и создаём резервную копию содержимого старого файла .htaccess и заменяем его фрагментом кода, указанного выше.

После этого сохраните изменения в файле .htaccess с помощью текстового редактора и закройте его. FileZilla спросит, хотите ли вы заменить существующий файл .htaccess копией, которую вы только что отредактировали. Согласитесь на это действие, и всё! Вы просто переустанавливаете свои постоянные ссылки WordPress вручную, не нарушая ничего в этом процессе.

На этом этапе попробуйте снова вернуться на ваш сайт. Ошибка 404 должна исчезнуть, что уже является отличной новостью. Тем не менее, вы по-прежнему можете вернуть предыдущую структуру постоянных ссылок, если вам не нравятся числовые URL-адреса.

Помните, что вы можете изменить способ просмотра ваших постоянных ссылок, перейдя в панель управления и во вкладку Настройки> Постоянные ссылки. Выберите структуру, которую использовал ваш сайт до ошибки 404, и сохраните изменения. Тогда всё должно вернуться к нормальному функционированию.

3. Отключите темы и плагины в WordPress.

Как уже упоминалось ранее, иногда ваши плагины и темы могут влиять на структуру вашего WordPress, в зависимости от их настроек. Если вы попробовали один или оба предыдущих метода и ошибка 404 по-прежнему сохраняется, отключите свои темы и плагины.

Есть два способа сделать это, в зависимости от того, имеете ли вы доступ к панели управления или нет. Если у вас есть доступ, перейдите во вкладку Плагины> Все плагины и выполните этот процесс для каждого из ваших плагинов:

  1. Нажмите кнопку Деактивировать под именем плагина.
  2. Проверьте свой сайт, чтобы узнать, сохраняется ли ошибка 404.
  3. Если ошибка всё ещё существует, повторно активируйте отключённый плагин.
  4. Перейдите к следующему плагину в списке и повторите процесс.

Ваша цель – отключать каждый плагин один за другим. Вы можете отключить их всех сразу, но в большинстве случаев всего один плагин вызывает проблемы. Если отключение одного из ваших плагинов устраняет проблему, у вас есть три варианта. Вы можете проверить, есть ли доступное обновление, и временно отключить плагин до тех пор, пока оно не появится, или вы не замените плагин на альтернативный.

Если вы проверили все свои плагины, и ни один из них не оказался причиной проблемы, вам также придётся убедиться, что ваша активная тема не приводит к ошибке 404. Этот процесс намного быстрее, так как вам нужно проверить всего одну тему. Перейдите на вкладку Темы и переключите свою активную тему на какую-нибудь другую:

Как временно изменить тему

Теперь проверьте, не исчезла ли ошибка 404. Если да, то вам снова нужно выбирать между поиском обновления или поиском новой темы. Переключение тем в WordPress может быть немного хлопотным, но в конечном итоге это необходимо, раз уж ваша текущая тема приводит к ошибкам.

Если у вас нет доступа к панели управления, вы можете отключить тему и плагины вручную через FTP. Чтобы сделать это, зайдите на свой сайт с помощью FileZilla, затем перейдите в каталог public_html / wp-content. Здесь вы найдёте несколько папок, две из которых называются plugins и themes соответственно:

Как отключить плагины или тему вручную

Сначала зайдите в каталог плагинов. Вы заметите, что для каждого плагина есть своя папка. Выберите одну из этих папок, щёлкнув по ней правой кнопкой мыши и выберите опцию Переименовать:

Как переименовать папку

Измените название папки на что-то вроде akismet.disabled, так чтобы вы смогли легко её идентифицировать. Простого изменения названия папки плагина достаточно для того, чтобы WordPress его отключил. Теперь проверьте, не исчезла ли ошибка 404. Если нет, верните этой папке прежнее название и повторите этот процесс для каждого следующего плагина в папке.

Если один из ваших плагинов стал причиной ошибки, вы знаете, как с этим справиться. Однако, если окажется, что ошибка 404 возникает не из-за них, вы можете перейти в каталог тем wp-content> themes. Найдите папку с активной темой и переименуйте её так же, как и плагины:

Как переименовать папку тем

Поскольку WordPress всегда нуждается в активной теме, отключение вашей приведет к тому, что платформа будет использовать один из готовых вариантов по умолчанию. Это может повлиять на внешний вид вашего веб-сайта, но не беспокойтесь, это временно.

Если ошибка исчезла, вам может потребоваться подобрать новую тему. Однако, если это не так, восстановите предыдущее название папки своей темы, чтобы WordPress снова её распознал.

Дополнительная информация

Ошибка 404 это не единственная проблема, которая может возникнуть с веб-сайтом в WordPress. Вот список наиболее популярных ошибок в WordPress с углублённой информацией о том, как их исправлять:

  • Как исправить ошибку 403 Forbide Error в WordPress
  • Как исправить ошибку 500 Internal Server Error в WordPress
  • Ошибка 502 Bad Gateway в WordPress – причины и как исправить
  • Как отладить и исправить ошибку 503 Service Unavailable в WordPress
  • Ошибка 504 Gateway Time-out и как её исправить в WordPress
  • Как исправить ошибку HTTP при загрузке изображений в WordPress
  • Как исправить ошибку «Извините, вы не можете получить доступ к этой странице» в WordPress

Вывод

Ошибка 404 может показаться простой, но она может нанести большой урон. Если ваши посетители не могут найти нужные им страницы, они могут начать искать в другом месте, а зачем вам это? Это означает потерянный трафик и, возможно, снижение конверсий.

К счастью, есть много способов решить эту проблему в WordPress, включая отключение тем и плагинов, восстановление вашего файла .htaccess и сброс ваших постоянных ссылок.

Если у вас возникли какие-либо вопросы, советы или рекомендации по работе с ошибкой WordPress 404 – давайте поговорим о них в разделе комментариев!

Author

Анна долгое время работала в сфере социальных сетей и меседжеров, но сейчас активно увлеклась созданием и сопровождением сайтов. Она любит узнавать что-то новое и постоянно находится в поиске новинок и обновлений, чтобы делиться ими с миром. Ещё Анна увлекается изучением иностранных языков. Сейчас её увлёк язык программирования!

I get 404 status when fetching images, and the http still contains that image. Image shows up in a browser, but the 404 code breaks some applications.

calls to wp-content/uploads/ are redirected in .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteRule (.*) /index.php?getfile=$1 [L]
</IfModule>

Why do I get a 404 status if the image is in there and is served?

asked Oct 13, 2010 at 13:59

naugtur's user avatar

2

Problem solved.

The plugin «User Access Manager» was found guilty of inserting a .htaccess file into wp-content/uploads/ and not handling calls properly afterwards.

I don’t know how UAM plugin could be fixed, but It’s ok to remove the .htaccess file. Nothing else depends on it. (at least in my case)

answered Oct 15, 2010 at 7:51

naugtur's user avatar

naugturnaugtur

1,1533 gold badges11 silver badges16 bronze badges

1

Log in to your WordPress root directory and rename .htaccess to something like .htaccess_old. Next, login to your WordPress admin area and navigate to Settings -> Permalinks
Next, choose a different permalinks structure from what you currently have and click the Save Changes button. Next, select the original permalinks structure you had and click the Save Changes button once more. Note, this will create a new .htacess file in your server. Fixes the images returning the 404 error. Cheers!

answered Jan 6, 2018 at 15:12

Freddy Muriuki's user avatar

Начну с того, что этот пост, по сути, не несет какой-либо практической пользы для сайтов уже «установленных» на сервер и полностью готовых.

Делая как-то «один сайт» я скопировал его на локалку (все кроме медиафайлов), а на сайте было много картинок: минимум две к записи плюс галереи. Получалось, что ни страница, то минимум 2-3 картинки. Для того, чтобы работать над сайтом картинки мне не нужны, поэтому их я с сервера не брал. Таким образом, при работе на локалке на каждой странице у меня было минимум 2 битые ссылки на картинки, а то и 20.

Я заметил, что чем больше картинок на странице, тем дольше грузится страница, вплоть до 10 секунд. Это стало раздражать и пришлось разобраться в причине такого безобразия. Причина оказалась в том, что каждая битая ссылка на картинку «скрыто» генерировала 404 страницу. В качестве примера можете попробовать вписать ссылку типа: http://вашдомен/kartinka.jpg и вы получите страницу с ошибкой, страницу со всем содержимым сайта, с сайдбаром(и) и прочим…

Закрываем ненужные 404 страницы

Получается, чтобы сгенерировать страницу с одной битой ссылкой на файл, WordPress генерирует две страницы: саму страницу и страницу с ошибкой 404. Если на странице 2 битые ссылки, то будут созданы 3 страницы и т.д.

Конечно, на рабочем сайте битых ссылок обычно нет, поэтому и проблемы такой нет, но на локалке не грузить страницу 404, если это файл очень может пригодится. Впрочем, это может пригодится и на рабочем сайте см. ниже.

Вариант на .htaccess (рекомендую)

Эту проблему можно решить добавив следующий код в файл functions.php и сбросить правила ЧПУ:

# Добавим условия в .htaccess, которые будут выдавать 404 ответ сервера для несуществующих файлов.
# Заметка: чтобы код начал работать нужно сбросить правила перезаписи (ЧПУ).
if( is_admin() ){

	add_filter( 'mod_rewrite_rules', 'block_nonexistent_files' );
	function block_nonexistent_files( $rules ) {

		$add_rules = '
		# 404 для несуществующих файлов.
		<IfModule mod_rewrite.c>
		RewriteEngine On
		RewriteBase /
		RewriteRule ^index.php$ - [L]
		RewriteCond %{REQUEST_FILENAME} !-f
		RewriteCond %{REQUEST_URI} !^/robots.txt$
		RewriteCond %{REQUEST_URI} .(php|s?htm|shtml|css|js|yml|swp|txt|jpe?g|png|gif|ico|pdf)(.*)?$
		RewriteRule . - [R=404,L]
		</IfModule>
		';

		$add_rules = trim( $add_rules );
		$add_rules = preg_replace( '/^t+/m', '', $add_rules );

		return "n$add_rulesnn" . $rules;
	}
}

Чтобы убедится, что все работает пишем в браузер http://мой-домен/kartinka.jpg и видим 404 ответ:

Что делает код?

Как только запрашивается файл (страница содержащая в конце ссылки .jpg, .gif, .png, .zip…), он проверяется на физическое существование, если его нет, работа скрипта обрывается со статусом 404 и до PHP, а значит и WordPress дело вообще не доходит. Такая заглушка генерируется за доли секунды.

Задать шаблон 404 странице в этом случае можно через директиву ErrorDocument 404 /404.html и создание файла 404.html в корне сайта.

Вариант на php (не рекомендую)

Код нужно вставить в самое начало файла index.php в корневой директории сайта, там где wp-config.php.

// Проверка на тип ошибки 404, если это файл не генерировать страницу,
// а просто писать об ошибке
$URIreq = $_SERVER['REQUEST_URI'];
if ( preg_match('/.(jpg|jpeg|gif|png|zip)(?.+)?$/', $URIreq ) ){

	$PathToFileFromRoot = $_SERVER['DOCUMENT_ROOT'].$URIreq;
	$PathToFileFromRoot = str_replace( '//', '/', $PathToFileFromRoot );
	if ( !file_exists($PathToFileFromRoot) ){
		echo "<div style='margin:100px 10% 0 10%; padding:20px; text-align:center; border:1px solid #42A6FF; background:#DEF0FF; white-space:nowrap;'>
		<b>File not found:</b> $URIreq<br>
		<b>From Page:</b> <a href='{$_SERVER["HTTP_REFERER"]}'>{$_SERVER["HTTP_REFERER"]}</a><br>
		<div style='font-size:25px; padding-top:30px;'>Go to WebSite: <a href='http://{$_SERVER['HTTP_HOST']}'>http://{$_SERVER['HTTP_HOST']}</a></div>
		</div>";
		exit();
	}
}

Внимание, для уже рабочих сайтов!

Такому же эффекту подвергаются:

  1. Битые ссылки на несуществующие файлы: картинки вызываемые из css стилей и ссылки на css, js и другие файлы.
  2. Несуществующие файлы, к которым не редко обращаются различные боты-сборщики, например example.com/absd.php.
  3. Ваши удаленные картинки, которые были скопированы и используются на других сайтах.

Поэтому, если чувствуете, что ваша страница грузится подозрительно долго, проверьте все ссылки со страницы. Я так находил по несколько битых ссылок и не раз. Для примера возьмем вот этот сайт: wordpressinside.ru, который возможно вам известен, здесь, на вскидку, я нашел как минимум 2 битые ссылки, вот они (были до написания этой статьи smile ):

  1. http://wordpressinside.ru/wp-content/plugins/simple-counters/js/sc.js.php
  2. http://wordpressinside.ru/wp-content/plugins/simple-counters/js/jquery.qtip.js
    Эти ссылки вшиты в шаблон и при генерации любой страницы, параллельно генерируется 2 страницы 404. Думаю не сложно представить насколько дольше генерируется страница, о лишних, абсолютно ненужных нагрузках на сервер я уже и не говорю…

Для решения проблемы, можно просто удалить битые ссылки — они просто не нужны…

Очень полезная вещь! Что это? Какие-то таинственные заклинания?

Обработка Error 404 в WordPress

Да, это волшебство поможет резко снизить нагрузку на сервере от всяких сумасшедших роботов.

Суть проблемы ошибки 404 в WordPress.

Все ошибки 404 (нет запрошенной страницы) WordPress обрабатывает самостоятельно. Это здорово придумано, можно делать свою красивую страницу 404 — и будет счастье.

Но в интернете развелось очень много желающих сломать Ваш сайт и постоянно роботы (сетевые боты) делают проверки вида:

  • domen,ru/pass.php
  • domen,ru/login.php
  • domen,ru/administrator.php

и прочая ахинея

Обработка Error 404 в WordPress

Обратите на временной интервал подборщиков:

  • 6:44
  • 6:46
  • 6:48
  • 6:49
  • 6:50
  • 6:51

и на каждое такое обращение WP генерирует страницу 404…

Можно поискать плагин, который пишет ошибки не в базу, а в файл на сервере (пока не нашел, напишу сам). При наличии файла на сервере — можно подключить fail2ban (и скормить ему этот файл) и блочить тупых ботов по IP после трех-пяти ошибок 404.

Плюс часть «умных» утащили с Вашего сервера картинки себе на сайт методом «copypaste» — т.е. картинки на чужом сайта по-прежнему загружаются с Вашего сервера (и дополнительно его используют).

И  после того, как Вы переделали свою исходную статью и картинки к ней (часть удалили, например) — Ваш WordPress начнет генерировать ошибку 404 на каждую отсутствующую картинку! Причем по одной странице 404 на каждую картинку!

Жесть какая, да? Нам нужно оставить генерацию 404 средствами WordPress только для отсутствующих страниц.

Возвращаем управление Error 404 серверу Apache

В WopdPress принудительно сделана передача себе обработки 404. Нужно изменить файл .htaccess, что бы движок обрабатывал только отсутствующие страницы (а не файлы).

Вот собственно код для модуля  mod_rewrite.c (поделились добрые люди)

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase / 
RewriteRule ^index.php$ - [L] 
 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} .(php|s?html?|css|js|jpe?g|png|gif|ico|txt|pdf)(/??.*)?$ 
RewriteRule . - [R=404,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule>

# END WordPress

Синим цветом — от WordPress, красным — в центре добавлены изменения:

  • запрос файла
  • проверка расширения
  • действие -> 404

Этот код полностью переключит всю обработку 404 на Apache для соответствующих расширений файлов.

Обратите внимание на регулярное выражение s?html? — это означает целый набор расширений файлов:

  • shtml
  • shtm
  • html
  • htm

Знак вопрос в регулярном выражении разрешает повторение предыдущего символа 0 или 1 раз. Конструкция jpe?g работает аналогично — это или jpg или jpeg

Если Вам надо оставить обработку файлов .html на WordPress, а все остальные варианты htm отдать Apache — можно сделать так

s?htm|shtml — т.е. отдаем Apache три варианта (вертикальная черта означает «или»)

  • shtm
  • htm
  • shtml

Можно еще добавить расширений файлов, которые любят роботы-подборщики

  • yml — Yandex Market Language — для загрузки прайс-листов в Маркет
  • swp — файл обмена виртуальной памяти
  • bak — архивные файлы чего-либо
  • xml — разметка xml
  • env — настройка переменных среды Unix
  • sql — дамп базы данных MySql
  • dat — файл хранения необработанных данных
  • new — не знаю почему, но роботы пробуют
  • zip, gzip,rar — файлы архивов
  • log — файлы логов
  • suspected — расширение, которое присваивает антивирус хостера для зараженных файлов (index.php -> index.php.suspected)
  • 7z — файл архива
  • gz — файл архива
  • tar — файл архива

И еще для особо продвинутых (любопытных) ботов надо запретить:

  • тильду на конце расширения файла — т.е. вот такой вариант domen.ru/abcd.php~ (тильда в некоторых ОС используется как временно сохраненная версия)
  • и слеш в конце — т.е. вот такой вариант тоже не должен обрабатываться 404  в WP — domen.ru/abcd.php/

Добавляем после скобки с расширениями файлов еще скобку (/?~?) — принцип тот же (символ на конце может быть а может и не быть) — это и /? и ~?

Лишний бэкслеш нужен для экранирования обычного слеша — т.к. он является системным символом.

Исключаем robots.txt из обработки Apahce

ВАЖНО: использование txt в списке расширений отключит генерацию виртуального файла robots.txt средствами WordPress (при отсутствии физического файла robots.txt на сервере). Просто запрос domen.ru/robots.txt не дойдет до сервера PHP.

Для исключение файла /robots.txt из обработки ошибки 404 средствами Apache — его надо добавить в условие (исключить ТОЛЬКО robots.txt)

RewriteCond %{REQUEST_URI} !^/robots.txt$

  • символ ! означает отрицание
  • символ ^ означает, что проверяется совпадение с начала строки
  • символ означает, что следующий символ является просто символом, а не управляющим символом (наша точка перед txt) — в данном случае не критично (в regex точка означает одиночное совпадение с любым символом, в т.ч. и с точкой)
  • символ $ означает (без доллара никуда…), что мы не только слева проверяем наличие robots.txt, но и справа. Символы txt справа — они последние в проверке. Без $ мы заодно исключим варианты для обработки Apache (а оно нам надо?)
    • robots.txt~
    • robots.txt/ 
    • и так далее

Итоговая конструкция (которая в середине файла .htaccess) будет иметь вид

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_URI} .(php|asp|suspected|log|xml|s?htm|shtml|css|js|yml|swp|bak|env|new|sql|dat|zip|gzip|rar|7z|tar|gz|jpe?g|svg|png|gif|ico|txt|pdf)(/?~?)$
RewriteRule . - [R=404,L]

Решение этого вопроса на WordPress (вариант и для Nginx)

How do I skip wordpress’s 404 handling and redirect all 404 errors for static files to 404.html?

https://wordpress.stackexchange.com/questions/24587/how-do-i-skip-wordpresss-404-handling-and-redirect-all-404-errors-for-static-fi

Вносим корректировки в .htaccess 

ВАЖНО:  ручная корректировка файла .htaccess не поможет, WordPress контролирует его содержимое и периодически возвращает свои исходные настройки в блоке, выделенному тэгами 

# BEGIN WordPress

# Директивы (строки) между `BEGIN WordPress` и `END WordPress`
# созданы автоматически и подлежат изменению только через фильтры WordPress.
# Сделанные вручную изменения между этими маркерами будут перезаписаны.

# END WordPress

Используйте плагин, которые умеет его редактировать и перехватывает управление WP, например

Плагин All in One SEO Pack

Вот его раздела «Редактор файлов»

Обработка Error 404 в WordPress

Или через использование хуков и функций WordPress

Вот в этой статье подробно написано, как это сделать

Вред от страницы 404 в WordPress или не загружаем страницу 404, если это файл

ВАЖНО: разработчики WordPress периодически что-то изменяют — обратите внимание на появление в WoprdPress 5.6 новой  инструкции

RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Поэтому можно вообще сделать отдельным блоком до модуля Вордпресса

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_URI} .(php|asp|suspected|log|xml|s?htm|shtml|css|js|yml|swp|bak|env|new|sql|dat|zip|gzip|rar|7z|tar|gz|jpe?g|svg|png|gif|ico|txt|pdf)(/?~?)$
RewriteRule . - [R=404]
</IfModule>
# BEGIN WordPress
# Директивы (строки) между `BEGIN WordPress` и `END WordPress`
# созданы автоматически и подлежат изменению только через фильтры WordPress.
# Сделанные вручную изменения между этими маркерами будут перезаписаны.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Обязательно в нашем правиле RewriteRule убираем флаг L (который Last — т.е. последнее перенаправление). Иначе часть инструкций ниже от WP работать не будет.

И конструкцию <IfModule mod_rewrite.c></IfModule> тоже крайне желательно использовать — она дает серверу исполнять инструкции внутри, если уставлен mod_rewrite.c для Apache.  У 99% хостеров он установлен по умолчанию — но на всякий случай пусть будет.

Результат обработки 404 со стороны Apache

ВАЖНО: весь этот список файлов (по их расширениям) не блокируется Apache — мы просто ему возвращаем управление ошибкой 404 при отсутствии какого-либо файла с этим расширением. Если  файл есть или расширение не запрещенное (в данном случае html разрешено) — Apache пропускает url в обработку WordPress.

Раз

Обработка Error 404 в WordPress

Два

Обработка Error 404 в WordPress

Три

Обработка Error 404 в WordPress

Красота же :)

Нагрузка на сервер PHP падает на 50% — теперь ему не нужно обрабатывать 404 в ответ на тупые подборы…

Оставим только медиа для APACHE

Вроде всё хорошо, и Апач быстрый — но b «мамкиных» хакеров много.

Вот такое безобразие может быть

https://site.ru/site.php71
https://site.ru/site.php72
https://site.ru/site.php73
https://site.ru/site.php74
https://site.ru/site.php75

Причем скрипт подборщика делает это 60 раз в минуту (и в user agent = python) — т.е. APACHE занят полностью и никто к Вам на сайт из живых людей не зайдет.

Имеет смысл оставить 404 ошибку через APACHE только для медиафайлов — а всё остальное пропускать в WordPress. Делать лог и баннить :)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_URI} .(jpe?g|svg|png|gif|ico)(/?~?)$
#media only
RewriteRule . - [R=404]
</IfModule>
# BEGIN WordPress
# Директивы (строки) между `BEGIN WordPress` и `END WordPress`
# созданы автоматически и подлежат изменению только через фильтры WordPress.
# Сделанные вручную изменения между этими маркерами будут перезаписаны.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Далее php-скриптом формируем лог ошибок 404 на сервере и отдаем в блокировку fail2ban.

В результате IP такого вредителя блокируется на уровне сервера (NetFilter)  на 1 неделю — 1 месяц.

В принципе обработку 404 ошибки в логе можно оставить и в APACHE, но не удобно:

  • это не ошибка вебсервера — это отсутствие URL
  • все ответы сервера 200…400…500 пишутся в лог доступа, а в не лог ошибок
  • если сайтов несколько — будут отдельные логи для каждого сайта

Плюс достаточно сложная логика обработки статуса 404:

  • это могут быть боты поисковых систем — их не надо блокировать
  • это могут быть ошибки реальных пользователей
  • вообще кто угодно и что угодно может набрать в строке браузера

Проще всю логику сделать на PHP, чем на регулярных выражениях при настройке fail2ban.

16.08.2022
Публикация 6 месяцев назад
Длинная ссылка URL выходит за пределы блока Вот, например, ссылка на сайт MS
https://docs.microsoft.com/ru-ru/microsoftteams/platform/concepts/build-and-test/deep-links?tabs=teamsjs-v2
При просмотре на широком экране все в порядке.
В мобильной версии сайта ссылка выходит за пределы блока и браузер рисует лишнее место справа. Вроде немного ссылка за пределы блока вышла — но получается так. И самое плохое — наша кнопка «Обратная связь» оказалась за пределами экрана мобильной версии.
Особенно такая беда в бесплатных темах WordPress.
Как это исправить?
Нам нужен CSS для указания переноса строк
Таблицы каскадных стилей управляют выводом браузера на экран.
Кратко о…
(Читать полностью…)

31.05.2022
Публикация 8 месяцев назад
Есть такой плагин для архивирования сайта  All-in-One WP Migration Читаем статью
Плагины для архивирования и переноса сайта
Было так: тестовый вариант до 64 Мб
бесплатный вариант (расширение Basic) до 500 Мб
выше 500 Мб сайт — платный вариант А стало так: бесплатный вариант до 100 МБ
платный вариант — сайты более 100 Мб Ссылка на расширение к плагину
https://import.wp-migration.com/en Чувствуете, что одной колонки не хватает?
Остался вариант только  «премиум». Причем при создании архива Вам плагин ничего не сообщает, что правила игры изменились. Плагин дает возможность создать архив для любого объема сайта.
В результате архив у Вас есть — а…
(Читать полностью…)

22.02.2022
Публикация 11 месяцев назад
Как добавить свои столбцы в административной панели WordPress Нужно в простом варианте сделать несколько вещей: создать саму колонку и его название (через add_filter)
заполнить его данными (через add_action)
при необходимости включить возможность сортировки колонки (через add_filter) Создаем колонку
// создаем новую колонку для записей
add_filter( ‘manage_’.’post’.’_posts_columns’, ‘tsl_manage_pages_columns’, 4 );
function tsl_manage_pages_columns( $columns ){
$columns = array( ‘views’ => ‘Визиты’ );
return $columns;
}
Итого в массиве $columns появится новый элемент (обычно в самом конце)
Заполняем…
(Читать полностью…)

20.11.2021
Публикация 1 год назад
Это же просто. Возвращается текущая дата и текущее локальное время сервера (с правильно установленной таймзоной).
Вот каждый может проверить
https://wpavonis.ru/server.php
Но если запустить этот же код из среды WordPress — мы получим другие результаты
UTC
2021-11-20 07:42:01
Что это за фокус?
Почему время по Гринвичу  и таймзона другая? WordPress живет в прошлом?
ДА! Как говорится — «это не баг, а фича».
При запуске ядро WP устанавливает таймзону на UTC. Сделано это специально.
Вот тут подробнее.

current_time

ВАЖНО: Функция учитывает время сервера установленное в date.timezone setting и переписывает его в момент инициализации системы,…
(Читать полностью…)

20.04.2021
Публикация 2 года назад
Вышла версия 1.9 плагина tsl-plugin-out-list-posts Страница плагина находится здесь
Плагин вывода анонсов постов в конце контента
Плагин добавляет в конце текста анонсы дочерних или одноуровневых страниц для текущего контента. Логика вывода: список дочерних страниц
при отсутствии дочерних страниц — выводятся страницы одного уровня
при наличии и дочерних страниц и страниц одного уровня — выводятся дочерние страницы
на верхнем уровне при отсутствии дочерних страниц ничего не выводится  
По умолчанию выводятся первые 700 знаков текста и миниатюра.
Для примера дерево страниц. Верхняя страница Средняя страница 1
Средняя страница 2
Средняя страница…
(Читать полностью…)

13.02.2021
Публикация 2 года назад
После установки WordPress в папке сайта создаются несколько информационных файлов Это собственно файлы: license.txt
readme.html Их можно просмотреть через прямой доступ в строке URL. Ранее в файлах добрый WP указывал установленную версию, чем облегчал работу хакеров. Теперь убрали, но нельзя гарантировать, что в будущих обновлениях снова не добавят.
Поэтому лучше закрыть.
Совет «Удалить после установки!» не подходит — т.к. при обновлении эти файлы будут восстановлены.
Файл license.txt
Описание лицензии GPL и указание на CMS WP  Файл readme.html
Общее описание WordPress Файл wp-config-sample.php
Это, собственно, не информационный файл. Это образец для создания…
(Читать полностью…)

05.02.2021
Публикация 2 года назад
В версии WP 5.6 страница с результатами поиска изменилась и стала попадать в индекс поисковых машин Что это такое? 
А это теперь WordPress оптимизировал URL выдачи результатов внутреннего поиска в виде domen.ru/search/term
Ранее было domen.ru/? s = term
И побежали радостные китайские боты заводить в поиск всякую чепуху.
Если в этот момент на страницу заходит поисковый  робот: он её проверяет
получает ответ от сервера 200 ОК  (даже при отрицательных результатах поиска!)
ой
и радостно сохраняет в индексе Вот так это выглядит в строке URL

 
Для запрета поисковым роботам индексации необходимо добавить в файл robots.txt инструкцию
Disallow: /search
Это запрет на индекс…
(Читать полностью…)

26.01.2021
Публикация 2 года назад
Можно увидеть в файле .htaccess новую строку Это добавлена возможность создавать пароли приложений: на сайте должно быть включено шифрование SSL (протокол HTTPS)
для API WP
для защиты мобильного входа в админку xml-rpc.php (через сервер WordPress) Подробнее можно прочитать в статье 
Пароли приложений (авторизация)
Сделано на основе плагина Application Passwords
Пароли можно установить в управлении учетной записью пользователя Смысл в том, что Вы указываете мобильное приложение на своем смартфоне (которое, например, WordPress), создаете для него пароль = и Вы можете входить в мобильную версию админки (только с данного устройства) без основного пароля…
(Читать полностью…)

WordPress. Ошибка 404

От автора: приветствую, вас, уважаемые читатели. 404 ошибка WordPress: что это? зачем? и почему? Из этой статьи вы узнаете ответы на эти вопросы, а именно: что такое 404 ошибка WordPress, как исправить ошибку 404 в WordPress и как, благодаря ошибке 404, подсказать пользователю, что он набрал неверный адрес.

Что же такое ошибка 404?

Начнем, пожалуй, с определения того, что же такое ошибка 404. Ошибка 404 — это стандартный код ответа сервера на ошибочный запрос. Этот код означает, что по данному адресу ничего нет: Not Found (не найдено). Прежде всего этот код необходим для поисковых роботов, чтобы сообщить им, что по данному URL ничего нет.

А нужна ли ошибка 404?

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

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

Настройка страницы 404 в WordPress

Итак, мы выяснили, что страница 404 — нужна. Как же настроить в WordPress эту страницу и в чем заключается настройка 404 страницы? Собственно, зачастую нам не придется делать ничего особенного, поскольку в WordPress все уже сделано за нас. Все, что вам необходимо сделать — создать в папке активной темы новый шаблон (если его там еще нет), который так и называется — 404.php.

Далее этот шаблон мы можем оформить по собственному вкусу. Это может быть как шаблон в общем стиле сайта, так и кардинально отличающийся от общей стилистики. Вообще, оформление страницы 404 — довольно интересный и иногда даже занимательный вопрос. Многие сайты стараются выделиться, создавая страницы 404 с юмором, с т.н. «пасхальными яйцами», вставляя на эту страницу всевозможные занимательные картинки.

Бесплатный курс «Создание тем на WordPress. Быстрый старт»

Изучите курс и узнайте, как создавать уникальные темы на WordPress с нестандартной структурой страниц

Скачать курс

Это может быть как относительно простая, но со вкусом оформленная страница ошибки 404, например, как на Гитхабе:

Так и довольно сложная, великолепная и оригинальная страница студии дизайна Bluedaniel — www.bluedaniel.com/404:

Ради интереса вы можете обратиться к поиску по картинкам Google, набрав простой поисковый запрос — 404. В ответ Вы найдете массу интересных и креативных картинок, которые используются для оформления страницы 404.

WordPress — 404 не работает…

Иногда вы можете столкнуться с такой ситуацией, что шаблон 404.php есть, но он почему-то не срабатывает, т.е. WordPress при возникновении ошибки 404 просто не подключает этот шаблон. Такое иногда случается и связано с настройками сервера.

Как же исправить эту ситуацию? Очень просто. Найдите в корне вашего сайта (рядом с папкой wp-content) файл .htaccess и добавьте в этот файл следующую строку:

ErrorDocument 404 /index.php?error=404

Эта строка заставит сервер при возникновении ошибки 404 обращаться по нужному адресу. Ну а WordPress уже подключит страницу 404. Если вдруг вы не найдете в корне сайта файл .htaccess, тогда создайте его самостоятельно. Сделать это можно через любой редактор кода (например, Notepad++).

Ошибка 404 — что делать?

До этого мы с Вами рассматривали оформление страницы 404 в WordPress. Но что делать, если на вашем сайте только и присутствует страница 404? Т.е. работает только главная, а при попытке перейти на любую другую страницу вы получаете в ответ ошибку 404 в WordPress? Да, такое тоже иногда бывает. Но не спешите кричать «Караул!» и переустанавливать WordPress. Можно попытаться решить проблему своими силами.

Вполне возможно, что почему-то произошла ошибка с настройками постоянных ссылок в WordPress. Попробуйте зайти в меню Параметры — Постоянные ссылки и просто нажмите кнопку Сохранить изменения. В большинстве случаев это поможет решить проблему с постоянной ошибкой 404 в WordPress.

Если первая рекомендация не помогла, тогда проверьте наличие в корне сайта упомянутого ранее файла .htaccess. Откройте этот файл и проверьте, присутствуют ли в нем вот эти строки:

# BEGIN WordPress

&lt;IfModule mod_rewrite.c&gt;

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ [L]

RewriteCond %{REQUEST_FILENAME} !f

RewriteCond %{REQUEST_FILENAME} !d

RewriteRule . /index.php [L]

&lt;/IfModule&gt;

# END WordPress

Если вдруг этих строк там не окажется, тогда добавьте их. Этот способ также должен помочь решить проблему постоянной ошибки 404 в WordPress.

Друзья, надеюсь, ознакомившись со статьей вы исправили ошибку 404 в WordPress и смогли настроить страницу 404. Если у вас возникли какие-либо вопросы — не стесняйтесь их задавать, мы попробуем ответить на них.

Бесплатный курс «Создание тем на WordPress. Быстрый старт»

Изучите курс и узнайте, как создавать уникальные темы на WordPress с нестандартной структурой страниц

Скачать курс

Создание тем на WordPress. Быстрый старт

Изучите курс и узнайте, как создать тему на WordPress

Смотреть

Ошибка 404 появляется тогда, когда пользователь переходит на несуществующую страницу вашего сайта. Появление таких ошибок возможно по разным причинам: пользователь сам ввёл неправильный URL, вы сами изменили URL или у вас что-то сломалось на сайте. Какая бы причина ни была у этой ошибки, необходимо оформить эту страницу подобающим образом. Рассмотрим в этой статье, как оформить на WordPress 404.

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

404page

404page – маленький плагин, который позволяет легко кастомизировать на WordPress 404. Скачиваем, устанавливаем и активируем. Затем переходим в пункт консоли «Настройки» и выбираем подпункт «404 error page».

Здесь всего одна настройка – список «Page to be displayed as 404 page», в котором необходимо выбрать страницу, которая будет появляться при ошибке 404. Если выбрать «none», то на WordPress 404 будет такой, как предусмотрено установленным шаблоном. В списке можно выбрать любую созданную страницу.

Custom 404 Error Page

Если вдруг первый плагин чем-то не понравился вам, то вот альтернатива ему с таким же функционалом – выбор любой страницы для отображения ошибки. После скачиваний, установки и активизации необходимо перейти в пункт «Настройки» и выбрать подпункт «Чтение».

Здесь множество настроек чтения, и в конце появиться список «Page for Error 404 (Not Found)». В нём и нужно выбрать, страницу 404 WordPress. Она должна быть создана заранее.

Создание страницы WordPress 404

Теперь, когда один из описанных выше плагинов установлен, можно приступить к созданию страницы, которая появится при возникновении ошибки. На WordPress 404 должна обладать следующими элементами:

  • Карта сайта. Если пользователь видит 404, то он потерялся. А потеряшкам нужна карта. Поэтому разместите на этой странице HTML-карту. Как её сделать, мы рассказывали тут.
  • Поиск. Поставьте форму поиска. Возможно, посетитель знает, что он хочет конкретно, и попытается найти это.
  • Дружелюбная картинка. Чтобы на WordPress 404 не напугала и не оттолкнула пользователя, разместите на этой странице дружелюбную, красивую картинку.
  • Ссылки на все главные страницы сайта. У пользователя должна быть возможность легко перейти с этой страницы на другие – главную, страницу рубрики, контактную форму.

Когда разметите все эти элементы на странице, перейдите в настройки одного из плагинов, о которых мы говорили выше, и выберите её в списке. Попробуйте набрать в браузере несуществующий адрес вашего сайта и проверьте.

WordPress 404 страница - как настроить

Рассмотрим, как настроить шаблон ошибки 404 в WordPress, чтобы создать полезную страницу, которая поможет пользователям сориентироваться на вашем сайте и улучшить поведенческие факторы.

Что такое ошибка 404 и почему важно правильно настроить страницу?

Ошибка 404 возникает, когда посетитель пытается получить доступ к странице, которая не существует. Многие склонны игнорировать эту страницу при использовании шаблонов WordPress и не задумываются о ее существовании. Тем не менее, если вы потратите время на создание удобной страницы 404, это поможет задержать пользователя на вашем сайте.

Интернет-адрес, ведущий на страницу с ошибкой 404, может оказаться просто неправильно набранным URL либо возникнуть со временем, если вы удалили проиндексированную страницу и забыли об этом. При выдаче кода 404 WordPress настроен на автоматический поиск файла 404.php. Базовый шаблон с этой ошибкой включен в некоторые темы WordPress. Если же этого файла нет, то будет показано системное сообщение, которое не несет полезной для пользователя информации.

Как создать страницу 404 ошибки, если ее нет в шаблоне — настройка

Не все темы WordPress имеют собственный файл шаблона ошибки 404. Если разработчик темы предусмотрел это, такой файл будет называться 404.php. WordPress автоматически использует эту страницу, когда возникает ошибка 404. Если в вашей теме нет этого файла, его можно создать самостоятельно.

шаблон 404 вордпресс

  1. Первое, что нужно сделать, это сформировать настраиваемый шаблон, например, редактируя файл 404.php, скопированный из другой темы. Если вы редактируете свою тему напрямую, настоятельно рекомендуется сделать резервную копию темы WordPress.
  2. Файл ошибки 404 расположен по адресу: /wp-content/themes/имя-темы/404.php
  3. Страница ошибки примет стиль активной темы, поскольку она вызывает шапку
  4. И подвал текущей темы.
  5. Понадобится только отредактировать заголовок и сообщение на странице в соответствии с вашими конкретными потребностями.
  6. Для этого откройте файл шаблона ошибки 404 в редакторе кода и измените текст сообщения на свое усмотрение.
  7. Добавьте в шаблон строку поиска, если ее там нет. Затем сохраните файл и загрузите его в каталог темы установки WordPress.

Поскольку все темы различаются, нет никакой гарантии, что простое копирование файла шаблона 404.php будет работать. Чтобы сервер нашел страницу 404, добавьте следующую строку в файл .htaccess:

ErrorDocument 404/index.php?error=404

Файл index.php расположен в корневой папке вашего сайта. Если WordPress находится в подкаталоге с именем «wordpress», код, добавляемый в файл .htaccess, должен быть:

ErrorDocument 404/wordpress/index.php?error=404

Что разместить на wordpress странице 404

Когда пользователь обнаруживает вместо искомой страницы сообщение об ошибке 404, разочарование может заставить его покинуть ваш сайт преждевременно. Задача веб-мастера помочь найти посетителю информацию, которую он искал, и тем самым снизить процент отказа и улучшить поведенческие факторы на сайте.

Рекомендуется указать пользователю правильное направление действий, которое заставит его задержаться на сайте. Это можно сделать несколькими способами:

  • предоставить информацию о других разделах вашего интернет-ресурса, которые можно посмотреть;
  • дать посетителю возможность связаться с вами по указанным контактным данным;
  • добавить ссылки на популярные сообщения, последние комментарии, архивы;
  • разместить строку поиска, чтобы посетитель сам нашел нужную информацию на сайте.

Чтобы сделать страницу уникальной, вы можете снабдить ее фоновым изображением в стиле оформления сайта. Допустимо также использовать html-теги и css-стили, чтобы придать шаблону индивидуальность.

Как создать в вордпресс 404 страницу при помощи плагина

Создать собственную страницу 404, как и любую другую страницу в WordPress можно при помощи плагина 404page (https://wordpress.org/plugins/404page/). Важной особенностью этого плагина является то, что он не создает перенаправление, а формирует правильный ответ сервера с кодом 404. Он сообщает поисковым системам, что страница не существует и должна быть удалена из индексирования, тогда как перенаправление приведет к HTTP-коду 301 или 302 и URL-адрес останется в индексе поиска.

Установите плагин 404page из меню админки «Плагин -> Добавить новый» и активируйте его.

плагин 404 вордпресс

Создайте страницу 404 как обычную страницу WordPress из меню «Страницы -> Добавить новую». Внесите в нее всю необходимую информацию, которую вы хотите показать посетителю, и нажмите кнопку «Опубликовать». Плагин 404page также добавляет CSS-класс error404 в тег <body>, который можно использовать для задания дополнительных стилей на странице.

страница 404 вордпресс

После активирования плагина в меню «Внешний вид» (1) появился раздел «404 Error Page» (2), в котором можно настроить отображение страницы ошибки.

Выберите созданную страницу 404 из списка страниц сайта (3). Убедитесь, что отмечен флажок (4), чтобы сервер отдавал код 404 при доступе к этой странице. Если вы используете кэширование, плагин выдаст предупреждение – страница из кэша будет отдавать код 200, поэтому ее нужно исключить из кэширования.

При возникновении проблем или конфликта с другими плагинами 404page может быть запущен в режиме совместимости. Нажмите кнопку «Сохранить изменения» (5).

настройка 404 вордпресс

Чтобы включить обработку ошибок 404 в WordPress, нужно установить структуру ссылок в меню «Настройки -> Постоянные ссылки» на любой пункт, кроме «По умолчанию». В противном случае ошибка 404 обрабатывается сервером, а не движком WordPress.

iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.

Мы предлагаем:

  • Виртуальные серверы с NVMe SSD дисками от 299 руб/мес
  • Безлимитный хостинг на SSD дисках от 142 руб/мес
  • Выделенные серверы в наличии и под заказ
  • Регистрацию доменов в более 350 зонах

I have the following shortcode which gets the images of that post (that will be in a folder named as the post’s id ) and displays them echoing as many tag images as needed.

    session_start();
    $postID = $_SESSION['post_ID'];
    $upload_dir = wp_upload_dir();
    $path = $upload_dir['basedir'].'/'.'gallery/'.$postID;

    if(file_exists($path)) {
        $pathFile = $path.'/*';
        $images = glob($pathFile);
        if(!empty($images)) {
            foreach($images as $image){
                $alt = end(explode('/', $image));
                echo '<img src="'.$image.'" alt="'.$alt.'" />';
            }
        } else echo 'No hay imágenes.';

    } else echo 'No hay imágenes.';

?>

The problem is that the images aren’t displayed, i get the followin error in the brower’s console GET https://path-to-theme/wp-content/uploads/gallery/1658/wwg.jpg 404, per every image and i get this icon:

image

I have no idea why my images aren’t displayed the images, the path is correct, the images are there, complitely no idea what I’m missing. It’s not a permissions problem as i tried giving 755 permissions to the directories starting from /uploads/.. and so on including the images.

asked May 10, 2019 at 18:53

Fran's user avatar

I’m going to assume that the URL you reference in your question is actually https://yourdomain/wp-content/uploads/gallery/1658/wwg.jpg and not https://path-to-theme/wp-content/uploads/gallery/1658/wwg.jpg. Right?

If that’s the case, then it should be able to pull open that file. The first thing I’d check is whether you actually have the file located where you think it is: /wp-content/uploads/gallery/1658/

If the file is actually in that folder, and you can access it from your browser at https://yourdomain/wp-content/uploads/gallery/1658/wwg.jpg then my next suggestion would be to check the permission of each of the folders leading up to the file and make sure they are set to 755, and then make sure your file is set to 644.

Here are instructions on changing file permissions.

Let me know if that helps?

answered May 10, 2019 at 22:06

Steck Insights Web Design's user avatar

3

I fixed the problem. The issue wa sthat i wasn’t uploading the images as wp wants me to, therefore the images, even they were in the folder, couldn’t be displayed. So I had to change the way i uploaded them, by using wp functions and specifying the mime_type etc so wp could store their metadata in it’s db in order to be able to acknowledge them and display them in a future.

answered Jun 13, 2019 at 10:12

Fran's user avatar

You’ve likely seen the “Page Not Found” error before. Unfortunately, if you operate a website of any sort (WordPress or not), the day will probably come when you see the message on one of your own pages.

Fortunately, like many common WordPress errors, 404s are relatively easy to troubleshoot and fix. The solution usually involves restoring your site’s permalink structure — something you can do in just a few minutes.

In this article, we’ll explain just what a 404 error is and what can cause one on your site. Then we’ll walk you through how to fix it in four simple steps. Let’s get started!

Get Content Delivered Straight to Your Inbox

Subscribe to our blog and receive great content just like this delivered straight to your inbox.

An Overview of the WordPress 404 Error

A 404 error, also known as a “Page Not Found” error, indicates that your browser can’t locate the page you’re trying to access. The exact message can look a bit different depending on the browser you’re using, but it will generally always contain either the “404” code or a “page not found” message of some kind.

DreamHost Glossary

404 Error

A 404 error is an HTTP status code that indicates that the page a user is trying to access does not exist. 404 errors can occur for a wide variety of reasons, but they almost always lead to a poor User Experience (UX).

Read More

Websites can also create their own custom 404 pages.

A custom 404 error page.

Seeing this notification (or any other error message) when you’re trying to access your site can be frustrating. While there is a chance that your post has actually gone missing, the vast majority of the time, there’s a more benign cause.

Some common reasons that WordPress posts might return 404 errors include:

  • A mistyped URL. It could simply be attributed to a typo in the URL. This is the most common cause.
  • An issue with your Domain Name System (DNS) settings. If you’ve recently updated any of your DNS information and you’re seeing this error, it could be because the changes haven’t propagated fully. It can take up to 48 hours for this process to complete.
  • Problems with the permalink structure of your site. Permalink problems can be caused by a missing, broken, or corrupted .htaccess file. Compatibility issues with WordPress components such as plugins and themes could also be the culprit.

Regardless of the cause, this error prevents access to your site, so it needs to be resolved as quickly as possible. We’ll look at troubleshooting and resolving the problem shortly.

Skip the Stress

Avoid troubleshooting when you sign up for DreamPress. Our friendly WordPress experts are available 24/7 to help solve website problems — big or small.

Why 404 Errors Matter

404 errors pose several problems for a website, beyond simply preventing you from accessing pages. First, they create a poor User Experience (UX).

If there are many of these errors on your site, and they aren’t resolved quickly, they could eventually turn users away. In the worst-case scenario, those visitors could land on a competing website instead, costing you business.

404 errors can also hurt your Search Engine Optimization (SEO). Search engine crawlers won’t index a page that returns a 404 because they think it doesn’t exist.

What to Do Before Troubleshooting the WordPress 404 Error

Before changing your permalink settings or .htaccess file, it’s a smart idea to create a backup of your website and database. This way, if you accidentally make something worse, you can easily restore your site to a functioning state.

If your website is hosted with DreamPress, backups couldn’t be easier. DreamPress automatically backs up your entire site every day, so you always have a fresh copy to access. You can also create a manual backup with just a few clicks.

How to Fix WordPress Posts Returning 404 Error (In 4 Steps)

With a fresh backup of your site in hand, it’s time to get to work. You’ll want to follow these steps in order and check if the error has been resolved after each one.

Step 1: Reset Your WordPress Permalinks

The first step to try is resetting your permalinks. Head to your WordPress dashboard and navigate to Settings > Permalinks.

The WordPress Permalink Settings page.

From here, just click on Save Changes. That’s right — you don’t actually need to edit anything. Clicking that button will update the permalink settings even if you don’t make any changes. This is important because it also refreshes the rewrite rules used for “pretty permalinks.”

With this done, go ahead and reload the pages you were trying to access. If everything works, you’re all done. If you still get a 404 error, head to the next step.

Step 2: Restore Your .htaccess File

If resetting your permalinks didn’t work, the next strategy is restoring your .htaccess file. This controls how WordPress interacts with the server and how it generates permalinks for your pages. Restoring it to the default settings can fix sudden 404 errors.

To restore the .htaccess file, you’ll first need a way to access it. If you’re using DreamPress hosting, you can use the built-in file manager found in the DreamHost control panel. Most other web hosts offer a similar feature, or you can use a Secure File Transfer Protocol (SFTP) client such as FileZilla. We have detailed instructions for connecting via SFTP if you need help.

For this example, we’ll use the DreamHost file manager. Head to your DreamHost panel and navigate to WordPress > Managed WordPress in the sidebar.

The DreamPress domain settings page.

Find the domain you’re having trouble with and click on the blue Manage button. On the next page, make sure the Details tab is selected at the top, and then click on Manage Files.

The DreamHost file manager.

This will open the file manager in a new tab. Locate and click on the folder that corresponds to your domain name. You’ll find the .htaccess file in this directory (it’s the same one that contains items such as wp-content).

The location of the .htaccess file in the WordPress root folder.

Next, click on the file name and select Edit from the list of options. You can copy the current contents of the file and paste them somewhere for safekeeping. For now, you’ll want to replace the contents with the following:

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

This is the default .htaccess file for WordPress. When you’ve pasted this in, go ahead and save the file.

Restoring this file will also reset the permalink settings for your WordPress site. Therefore, if you’re using a custom permalink structure (or have changed it at all from the default), you’ll need to restore that setting too.

To do so, head back to your WordPress dashboard and navigate to Settings > Permalinks (just like Step 1 above). You can change it to whatever you were using before and then save it.

Finally, refresh your website and attempt to load the pages that were returning 404 errors. If everything works now, congratulations! If not, proceed to the next step.

Step 3: Disable All of Your WordPress Plugins and Theme

If you’ve reset your permalinks and .htaccess file, but you’re still seeing 404 errors on your site, the next step is to check your plugins and theme. Plugins, in particular, can sometimes have bugs or compatibility issues that prevent a site from loading.

Let’s start there. The basic idea is to disable them one by one and then check your website. If the error persists, turn it back on and move to the next one.

To get started, head to your WordPress dashboard and navigate to Plugins > Installed Plugins.

The ‘deactivate’ button on the WordPress plugin settings page.

Locate and click on the Deactivate button below the first plugin. You can see that active plugins are shaded blue, while those that are off are white (as you can see with Akismet in the screenshot above). Now, refresh your site and see if the 404 error is still occurring.

If you get the error message, head back to the plugins screen, re-activate the plugin you just tried, and move to the next one in the list. If you find one that resolves the issue, you can check for updates that may resolve the problem or find an alternative with similar functionality.

If none of the plugins prove to be the issue, it’s time to try changing your theme. Head to Appearance > Themes.

The WordPress theme manager.

Your currently-active theme is marked as such. Hover over one of the others and click on Activate. Then refresh your site and try to access the problematic page again.

Note that changing your theme can alter your site significantly. So if you find that your theme is the issue, you may need to spend some time finding one that provides a similar look and features.

Step 4: Set Up a 301 Redirect for Moved or Renamed Content

This one is a bit of a bonus step. If you do actually have content that’s been moved or renamed and thus doesn’t exist anymore at the URL you were using previously, you’ll want to set up some 301 redirects to point that old URL to the new one.

The easiest way to do this is with a WordPress plugin such as Redirection.

The Redirection WordPress plugin for managing 30 redirects.

This tool will enable you to quickly set up the redirects you need. Plus, it’s free and user-friendly.

How to Create Your Own “Error 404 Not Found” Page

If you want to set up your own custom 404 error page, you can do so relatively easily. The process involves adding one line to the .htaccess file to point the error to a specific page and then creating that page. We have full instructions for setting up a custom error page to walk you through the process.

Tools to Help You Monitor 404 Errors Moving Forward

Finally, if you want to keep an eye out for 404 errors in the future, you can use a few handy tools. The Google Search Console will show you crawl errors that the Google bots have come across as they index your site. This is a simple way to see all the issues Google is encountering.

You can also enter your URL into a specialized tool such as the Broken Link Checker, which will scan your entire site for broken links and let you know if it finds a 404 page.

The Broken Link Checker tool for finding 404 errors on your website.

It’s free and easy to use. You can simply input your domain and then click on Check Site.

More WordPress Error Tutorials

Want to learn how to fix other common WordPress errors? We’ve created a series of guides to help!

  • How to Fix the 500 Internal Server Error in WordPress
  • How to Fix Syntax Errors in WordPress
  • How to Fix the WordPress Not Sending Email Issue
  • How to Fix the Error Establishing Database Connection in WordPress
  • How to Fix the Sidebar Below Content Error in WordPress (In 3 Steps)

Ready to Find That Missing WordPress Post?

A 404 error can be frustrating — especially when it happens on your own site. These messages cause problems with SEO and ruin your site’s UX. Fortunately, they’re not too difficult to resolve.

Fixing 404 pages generally involves restoring your site’s permalink structure and setting up redirects for any posts that are actually gone. You can then use tools such as Google Search Console to monitor your site for future 404s.

If you want to spend less time dealing with errors, consider switching to DreamPress, our managed WordPress hosting service. We’ll take care of all the troubleshooting for you, so you can focus on what matters!

  • Картина написана маслом художником речевая ошибка
  • Картина инженер увидит ошибку а гуманитарий драму
  • Картина изображала корабль вздымающийся на гребень морского вала ошибка
  • Картина занятости лексическая ошибка
  • Картина вызывает жалкое настроение найти ошибку