Как сделать редирект с 404 на главную wordpress

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

Сегодня хочу поднять тему создания 404 ошибки средствами apache через файл .htaccess . Я уже расказывал вам о том, как можно создать ошибку 404 на php, а так же о том как сделать 301 редирект на htacces, - пришло время рассказать о htaccess 404 ошибка. В этом уроке попробуем сделать htaccess 404 redirect таким образом, чтоб ошибка 404 была видна сразу, без 301 и 302 редиректа и без использования PHP, чтоб не нагружать его.

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

Редирект 404 на htaccess

Это не опечатка, действительно ошибка 404 создается аналогично 301 редиректу в .htaccess но с некой оговоркой.

Предположим, что у нас на сайте есть ненужные ссылки с GET параметрами, например ваш_сайт/?more=1 и мы хотим запретить их показывать отдав ошибку 404 в ответ.

Забрасываем этот код в файл htaccess в корне вашего сайта WordPress и смотрим результат:

Если вам нужно заблокировать какую нибудь страницу WordPRess, например ваш_сайт/privet-mir/, можно написать код вот такого плана:

Результат работы предсказуемый:

404 редирект htaccess

Я тестировал этот результат только на CMS WordPress, если у вас не получается использовать 404 редирект htaccess на другой системе управления не стоить расстраиваться, по всей видимости код для них может быть похожий. Как альтернатива попробуйте вот такой код:

Он не работает на вордпресс, но работает на сайтах без системы управления контентом.

Ошибка 404 htaccess

Если вы внимательно тестировали результат работы, то наверное заметили вот эту дурацкую ошибку:

htaccess 404 ошибка

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

Как указать страницу ошибки 404 на htaccess

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

Полный код будет выглядеть приблизительно вот так тогда:

И тут как говорится за что боролись, на то и напоролись:

htaccess 404 redirect

Перед ошибкой 404 мы получаем ошибку 302 и это как говорят СЕО шники очень плохо. В общем если ваш заказчик не СЕО специалист этот вариант прокатит, в альтернативном варианте надо использовать PHP для генерации ответа. Об этом я писал вот здесь: 404 c php

Если мне удастся решить проблему с htaccess 404 redirect 302 я обязательно напишу вам об этом в этой же теме. На данный момент решение проблемы не найдено. Решение есть, описал его ниже.

Аналогично можно было не придумывать каруселей и сделать 404 редирект на htaccess через 301 редирект, разницы по сути никакой, только проще и быстрее:

По сути задача сделать саму ошибку 404 превратилась в банальное перенаправление на 404. Будем искать варианты.

Решение проблемы 302 перенаправления при ответе 404

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

В корне сайта создаем файл "error.html" и туда забрасываем хтмл код, который генерирует ваш сервер WordPress. Вот результаты работы:

htaccess-404-not-302

и вот же правильная страница ошибки без редиректа 302:

htaccess-echo-404

Как вы поняли, проблему мы смогли решить благодаря тому, что не использовали полный путь к файлу в этой директиве ErrorDocument 404 /error.html 🙂

Теоретически на этом все. Теперь вы знаете как делается ошибка 404 на htaccess.

Если вы имеете другие решения htaccess 404 redirect или перенаправление на 404 без редиректа 301 и 302 буду рад вас выслушать. Обращайтесь, пишите комментарии, жмите лайк.

а у меня вроде работает такой редирект:
RewriteCond % !-f
RewriteCond % !-d
RewriteRule ^(.*)$ - [L,R=404]
ErrorDocument 404 /404.shtml

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

требуется все эти хвосты перевести в 404.
Пробовал добавить в .htaccess такой код:
RewriteCond % ^.*route.*
RewriteRule . - [R=404,L,NC]

но это не помогает, все равно 200 ОК отдает.

Добрый день.
Если все правильно, то этот код должен работать, только его нужно добавлять в самом верху и вы забыли о ErrorDocument 404 /error.html надо еще создать файл с ошибкой в корне, error.html хотя бы для теста.

писал вот такой код полностью.

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]

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

вот этой странице нужно прописать 404.

да код вроде правильный, но в самом верху не хватет строчки ErrorDocument 404 /error.html ну и собственно сам файл в корне создайте.

Если не помогает можете открыть header.php вашей темы и забросить в самый верх вот такое:

это точно поможет

RewriteCond % ^.*page=.*
RewriteRule . - [R=404,L,NC]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % !-f
RewriteCond % !-d

RewriteRule . /index.php [L]

Добрый день.
Вы видимо эту часть упустили ErrorDocument 404 /error.html

+ у вашем случаи не важно будет там 301 или не будет, можно смело через 301 редирект то же самое делать, на страницу вашсайт/404 или любую другую, хотя должно и через ошибку 404 получится

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % !-f
RewriteCond % !-d
ErrorDocument 404 /error.html
RewriteCond % ^.*page=.*
RewriteRule . - [R=404,L,NC]
RewriteRule . /index.php [L]

Ваш код должен быть выше ВП - шного.
Больше ничего не подскажу, так как чтоб понимать больше нужно смотреть конкретный сайт изнутри.

Здравствуйте.. понравилась статья..но у меня другой вопрос. Блог на ВП, а как сделать чтобы переводило на ошибку 404 со страниц с регистром HTTPS ..Просто у меня не получилось из-за сложности шаблона перейти на этот регистр но Яндекс уже успел проиндексировать и склеить зеркала, и теперь пользователи переходя по ссылке с поисковика натыкаются на фразу "Соединение не защищено" и т.п. а так хотя бы на блог с предложением других статей попадали (у меня так настроена при ошибке 404) ..Спасибо за ответ.

SOS
Не могу победить

php_flag register_globals on
RewriteEngine on
RewriteRule ^([-,0-9,a-z]+)$ /index.php?area=1&p=static&page=$1

Создал new404 (-url-)

Если вместо $1 вставляю new404, то все ссылки идут только на неё.

Немного не понял что вам нужно сделать. Пробовали код вставлять из этой статьи, он 100% рабочий под ВП я проверял.

index.php?area=1&p=static&page=new404
Поставил, но на него реагируют только ссылки с любым или несуществующем расширением.
У меня страницы без расширения вызываются.
У меня Koobi.
Мне нужно перенаправление на (-url-)

ErrorDocument 404 /index.php?area=1&p=static&page=new404

Оказывается, что проблема состоит не в том, чтобы корректно настроить правила в конфигурационном файле .htaccess , а в том, что при запросе несуществующих страниц на сайте вместо 404 кода отдается 200

остается только скомбинировать ваш хтаццес и этот ответ

У меня страницы tpl.
При вставке ПХП получается

Выше Вы показали пример, как отдать ошибку 404 странице с урлом типа "/?more=1"
А подскажите пожалуйста, что нужно прописать в .htaccess, чтобы ошибка 404 присваивалась не только "/?more=1", а всем страницам, содержащим в себе идентификатор "/?more /?more=1", и "/?more=2", и "/?more=3" и так далее.

Добрый день.
Все остается как есть, только меняем первую строчку с такого варианта

Если посмотреть документацию, то .* это любое количество любых символов 🙂

Будьте добры, как сделать, чтобы вместо главной страницы при любом ошибочном урл был код 404. Я понимаю, что в Hhtaccess надо прописывать конкретную страницу? А что делать в моем случае?

Добрый день.
О какой ЦМС мы сейчас говорим? - если ВП то он автоматически это делает, ничего никуда не нужно прописывать

Не знаю с какого источника вы нашли этот пример, но он реально работает. Получается чистая ошибка 404 на htaccess без редиректов и ошибок 302. Большое вам спасибо.

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

1) У меня нет .htaccess
2) Как сделать так, чтобы при переходе на не известную ссылку сайта, допустим: (-url-) - выдавала страница 404.html. У меня открывается, но только с такого: (-url-). А я хочу чтобы выдавала на всех длинных неизвестных стр. как допустим: (-url-). -Понимаете?

Что можно в код добавить? (Пробовал добавить такие как в конце: . -не пойдет.)

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

Только privet-mir замените на свое bla.

Если не ВП то используйте 301 редирект

1) .htaccess с панели сервера не создается, точнее создается, но она сразу исчезает. (создаю новый файл > переименовываю > сохраняю, а она выдает ошибку) - ОК.

2) Созданный файл с компа на NotePade++ - .htaccess при переносе на Cpanel > Pablic. - Тут же исчезает, искал во всех папках, и не нашел.

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

На пхп ошибка 404 делается намного проще. Зачем тогда выдумывать велосипед и делать ошибки 404 на htaccess ?? Какая в этом логика. С точки зрения СЕО 404 ошибка она и в африке 404, как не крути. Ведь так?

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

The page cannot be found. The page you’re looking for might’ve been removed, had its name changed, or is temporarily unavailable.

Domenator - Купить Домен для сайта

7 лучших плагинов WordPress для настройки страницы ошибки 404

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

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

Информация о 404 ошибке

Мы перейдем к нашему списку рекомендованных инструментов очень скоро, но сначала стоит упомянуть некоторые полезные ресурсы:

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

1. 404 Page by SeedProd

7 лучших плагинов WordPress для настройки страницы ошибки 404

Несмотря на то, что сам плагин совсем новый, его автор уже успел себя зарекомендовать, выпустив два других популярных инструмента: WordPress Notification Bar и Coming Soon Page&Maintenance Mode . Их послужной список служит хорошим предзнаменованием для дальнейшего развития и этого плагина.

404 Page позволяет вам создать пользовательскую страницу, которая заменит дефолтную страницу "Not Found" от вашей темы. Плагин должен работать с любой WordPress темой, поддерживает HTML5 и CSS3, и совместим с MultiSite и BuddyPress.

Существует премиум версия плагина: 404 Page Pro . Pro-версия предлагает довольно таки инновационное решение для превращения 404 страниц в посадочные страницы, путем интеграции с различными электронными маркетинговыми инструментами, такими как MailChimp, Aweber и Infusionsoft.

Pro-версия также предлагает готовый адаптивный дизайн, локализацию на более чем 18 языках и многие другие функции. Цена от $29 до $199.

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

2. All 404 Redirect to Homepage

7 лучших плагинов WordPress для настройки страницы ошибки 404

Название говорит само за себя. All 404 Redirect to Homepage просто перенаправляет с помощью 301 редиректа страницы с 404 ошибкой.

Автору предложили создать этот плагин после начала работы с Google Webmaster Tools, который считает количество страниц с 404 ошибкой и включает эту цифру при подсчете рейтинга сайта.

Почему именно такой метод перенаправления? С точки зрения SEO, редирект 301 перенаправляет пути от битых страниц к другим. Он говорит поисковой системе: "Эй, то, что вы ищите, можно найти здесь! Забудьте о том, что на другой странице".

Обратите внимание, что также рекомендуется использовать 301 редирект между www и non-www URL, чтобы избежать трудностей с дублированием контента.

3. 404 to 301

7 лучших плагинов WordPress для настройки страницы ошибки 404

Подобно All 404 Redirect to Homepage, плагин 404 to 301 перенаправляет все 404 ошибки на любую страницу, которую вы выберете.

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

Плагин также позволяет отключить перенаправление вообще, а только вести журнал событий. Вы можете сделать это, выбрав вариант “No Redirect”. Вы будете получать уведомления по электронной почте, таким образом, будете в курсе всех событий. Журнал сохраняет URL-адреса, с которых посетители перешли, IP-адреса, дату, тип браузера и ОС для того, чтобы точно определить и в дальнейшем устранить все уникальные ошибки.

Вы можете самостоятельно выбрать на какую конкретно страницу нужно сделать редирект. Отдельные посты также можно выбирать в качестве пункта назначения.

404 to 301 заявляет о себе, как о "невероятно легком и приятном инструменте для разработчика" и имеет большой репозиторий на GitHub, что всегда является хорошим знаком. Команда разработчиков также весьма активна, когда дело доходит до вопросов поддержки и исправления ошибок.

4. Custom 404 Pro

7 лучших плагинов WordPress для настройки страницы ошибки 404

Как и многие другие варианты, Custom 404 Pro позволяет заменить страницу с 404 ошибкой на кастомную. Плагин предлагает три варианта:

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

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

Автор плагина, Кунал Нагар, предпочитает, чтобы пользователи использовали GitHub для решения вопросов о 404 Pro, а не форумы поддержки в WordPress. Автор также отличается тем, что очень быстро устраняет все неисправности и быстро отвечает на вопросы относительно поддержки.

5. 404 Error Logger

7 лучших плагинов WordPress для настройки страницы ошибки 404

Есть также одна интересная опция, которая позволяет проводить whois IP поиск, используя инструмент DuckDuckGo . Журналы также могут быть экспортированы в CSV, если вы предпочитаете просматривать их в Excel.

Пользователи предупреждены, что плагин не будет работать в сочетании с плагинами, которые собирают информацию о переходах на страницу с 404 ошибкой, но он отлично работает вместе с W3 Total Cache и WP Super Cache.

6. Redirection

7 лучших плагинов WordPress для настройки страницы ошибки 404

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

Основные функции включают в себя 301 переадресацию 404 статусов, мониторинг 404 ошибок и ведение журналов, способность перенаправлять все URL-адреса - не только ошибки “Not found” - и возможность настройки перенаправления в зависимости от login-статуса или реферера.

Плагин также может быть настроен для того, чтобы автоматически перенаправлять почту при изменении URL-адреса, использовать 302 или 307 редирект и полностью локализован на более чем 20 языках (в том числе испанский, французский, немецкий, русский и японский). Разработчик Джон Годли, также предпочитает вести свою службу поддержки через Github.

7. SEO Redirection Plugin

7 лучших плагинов WordPress для настройки страницы ошибки 404

SEO Redirection Plugin - наш второй премиум плагин, а также второй плагин автора Fakhri Alsadi в списке. Этот плагин в основном добавляет все необходимые функции, которые отсутствуют в All 404 Redirect to Homepage. Существует платная и бесплатная версия.

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

Заключение

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

Некоторые люди всегда хотят работать с многофункциональными вариантами, но если вам нужен простой редирект и вы не хотите углубляться в журналы, то вам подойдет любой "базовый" плагин.

Если вы тот человек, который любит управлять всеми аспектами производительности вашего сайта на микро-уровне, вам больше подойдет Redirection или 404 Page Pro .

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

Как вы боретесь с подобными проблемами? Есть ли у вас любимый плагин? Обязательно делитесь с нами в комментариях!


Редирект позволяет перенаправлять один URL на другой. Это способ перенаправляет посетителей и поисовые системы по URL, отличному от того, который они первоначально запрашивали.

Преимущество 301 редиректа в том, что он позволяет сохранить рейтинг первоначальной страницы в поисковых системах.

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

Что такое 301 Редирект

Существует 3 типа перенаправлений: 301, 302, 307 и мета обновление.

301 — Постоянный редирект, который передает 90-99% ссылочного веса на конечную страницу. В большинстве случаев 301 редирект лучший способ для перенаправлений на сайте.

Мета обновление — Перенаправление, которое выполняется на уровне страницы, а не на уровне сервера.

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

Почему 301 редирект

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

Поисковые системы интерпретируют это так, что изменился не только URL страницы, но и контент, или его обновленная версия находится по новому URL.

Поисковые системы будут переносить вес ссылки с исходной страницы на новый URL.

Примеры использования 301 редиректа

Например, у вас на сайте есть статья о 5 лучших игроках в теннис. Если вы хотите добавить информацию еще об одном игроке, измените название статьи и URL с …/5-best-tennis-players на …/6-best-tennis-players, и поставьте 301 редирект.

Ссылочный вес старых страниц перейдет новой странице, и она быстрее начнет подниматься в поисковой выдаче.

Редиректы для сайта на CMS WordPress можно выполнить добавив записи в файл htaccess, ознакомится с чем можно в статье ниже.

301 редирект для сайта на WordPress

Установка плагина для редиректов на сайт WordPress

Устанавливаем появившийся плагин (автор John Gadley) и активируем его.

Активация плагина с редиректами на сайте Вордпресс

Переходим в настройки.

Переход в настройки плагина с редиректами на сайте Вордпресс

Соглашаемся с базовыми настройками.

Настройки шаг 1 плагина с редиректами на сайте WordPress

Система проверит сайт и завершаем настройку.

Настройки шаг 2 плагина с редиректами на сайте WordPress

Дожидаемся установки и переходим в интерфейс плагина.

Настройки шаг 3 плагина с редиректами на сайте WordPress

Настройка плагина с редиректами на сайте WordPress

Настройка перенаправления с http на https и с WWW на без WWW и обратно в плагине для сайта на CMS WordPress

Все готово в списке появится.

Настройки перенаправления со страницы на страницу в плагине Вордпресс

С WWW на без WWW и наоборот

В этой же вкладке сайт необходимо поставить галочку у нужного пункта.

Настройки перенаправления со страницы на страницу в плагине Вордпресс

Важно! По умолчанию настройка не делает никаких изменений в этом плане.

Как сделать редирект через файл htaccess

  • page1- страница которая будет переадресовывать;
  • page2 – открывающийся документ.

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/.

Также допускается использование конструкции:

Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта лежит файл htaccess.

Файл htaccess на сервере

Вводим нужное нам правило.

прописанный редирект в htacess

Как сделать перенаправление на другой домен?

Третий способ выполняет аналогичную функцию, но отключает перенаправление для robots.txt:

301 редирект с домена без WWW на с WWW

Если же первый способ не помог можно использовать данную версию:

С www на без WWW

Также имеется второй метод не требующий ввода доменного имени:

При необходимости сделать обратную интеграцию и перейти на незащищенную версию протокола можно воспользоваться:

В этой ситуации подойдет:

Читайте также: