редирект на страницу 404 php
Анчоус в масле
Блог одинокой рыбки запутавшейся в сетях
Делаем редирект 404 ошибки на морду сайта
Прикупил тут с оказией дроп с 6к бэков, причем не только разных спамных, но и gov & edu, так что захотелось мне посмотреть, что будет если приклеить все внутряки, которых видимо было огромное количество и на которые как раз и ссылались, к морде. Для чего возникла задача редиректить все 404 ошибки на морду сайта.
RewriteEngine on
ErrorDocument 404 /index.php
У меня он по какой то не понятной причине не заработал, ибо все равно вылетала страницы ошибки, как раз спеицально созданная в теме, под именем 404.php, так что мне пришлось её немного подправить, добавив в начало файла следующую строку:
После чего все зашуршало. Так что можно просто создать такой файлец 404.php и поместить его в корень темы /wp-content/themes/your-theme/ после чего все должно зашуршать.
Для WP, под который я все и мутил, оказался даже есть плагин 404 Redirection который вроде как редиректит все 404 ошибки на заглавную страницу, но поскольку у меня все заработало и без этого, то на плагин я забил.
Еще по теме:
Автор: anchous | Категория: сайты | 02 7th, 2012 |
12 Комментариев
Добрый день!
Говорят, что поисковики затирают несуществующие страницы 404 из своей базы.
А если сделать со всех 404 редирект на домен – то битая ссылка остается в базе поисковиков + к ней добавляется инфо с главной, создавая дубли. Кто сталкивался на своем опыте? Подскажите, не хочется нормальный сайт топить, а потом опять выплывать…
Спасибо.
anchous Reply:
January 30th, 2013 at 02:49
какие то у вас постапокалиптические фаназии на тему склейки
Добрый день.
А как к этому относятся ПС? Не посчитали типа поисковым спамом, вроде как перенаправление пользователя без его ведома?
anchous Reply:
January 31st, 2017 at 00:48
полагаю, что нормально относятся. если есть бояки то можно поставить таймаут редиректа
Не рекомендую редиректить 404 на главную. С точки зрения SEO это – серьезная ошибка. Гораздо лучше сделать нормальную 404 страницу.
И еще стоит посмотреть ссылки, которые ведут на несуществующие страницы. Если их много и особенно, если есть с сильно трастового сайта, то стоит и создать страницу с таким адресом, чтобы не терять ссылочный вес с траста, а потом ссылками с нее распределить вес на нормальные страницы.
anchous Reply:
October 13th, 2018 at 19:28
с точки зрения SEO – это ошибкой не является. и да, ссылка с траста никуда не потеряется, особенно при редиректе на морду. Единственное что может потеряться анкорный вес, если ссылка идет по важному ключу.
Вот разве только в этом случае имеет смысл затачивать новую страницу.
Большинство точек зрения по такому раскладу среди сеошников за то, что так делать нельзя. Ковырял раньше эту тему.
Я имел в виду анкорный вес, а раз дроп, то ключ в ссылке на него почти наверняка тематический и терять бонус жалко.
Еще плагин WP Redirect отлично работает
Для сео это называется ошибка 404-soft, что не очень хорошо, не рекомендую этого делать.
anchous Reply:
July 9th, 2019 at 17:19
софт-404 это про 2хх ответ. как не сложно догадаться 301 ≠ 2XX
301 как раз таки непосредственно про 404-soft ошибку, почитайте про это
anchous Reply:
July 11th, 2019 at 21:23
вот читаю, говорят что вы не тащите в теме ))
Как настроить страницу 404 и правильный ответ сервера (http-код страницы)
Сразу отмечу, что все вышеизложенное написано для самописных сайтов, преимущественно на php. Для wordpress существуют плагины по настройке того же самого. Но в этой статье мы рассмотрим, как все выглядит в реальности. %)
Переадресация (редирект) неправильных url на страницу 404
Правильный ответ сервера (http-код страницы)
Очень важно, чтобы при перенаправлении был правильный ответ сервера, а именно – 404 Not Found.
Тут следует объяснить отдельно.
Любому url при запросе назначается статус (http-код страницы).
• Для всех существующих страниц, это: HTTP/1.1 200 OK
• Для страниц перенаправленных: HTTP/1.1 302 Found
• Если страницы не существует, это должен быть HTTP/1.1 404 Not Found
Итак, после краткой теоритической части, вернемся к нашим баранам настройкам.
В этом случае нужно сделать две вещи:
1) Настроить правильный ответ сервера на странице 404.
2) Закрыть от индексирования страницу 404. Это делается через файл robots.txt
Настраиваем ответ сервера HTTP/1.1 404 Not Found для несуществующих страниц
Ответ сервера настраивается благодаря функции php в самом начале страницы:
Пишите ее вначале файла 404.
В результате мы должны получить ответ на битую ссылку:
Закрыть страницу 404 от индексирования
Закрыть страницу от индексирования можно в файле rodots.txt. Будьте внимательны с этим инструментом, ведь через этот файл ваш сайт, по сути, общается с поисковыми роботами!
Полный текст файла rodots.txt, где ТОЛЬКО закрыта индексация 404 страницы, выглядит так:
____________________________
User-agent: *
Disallow:
Disallow: /404.php
____________________________
Вот, собственно и все по странице 404. Проверьте работу страницы, перенаправления битых ссылок, и ответы серверов.
Повторюсь: Все вышеизложенное для самописных сайтов. Если вы используете wordpress, то можете поискать приличный плагин для настройки ошибки 404.
Ошибка 404 на htaccess
Редирект 404 на htaccess
Предположим, что у нас на сайте есть ненужные ссылки с GET параметрами, например ваш_сайт/?more=1 и мы хотим запретить их показывать отдав ошибку 404 в ответ.
Забрасываем этот код в файл htaccess в корне вашего сайта WordPress и смотрим результат:
Вот так вот, браузер получает ошибку 404 через redirect. Аналогичное сообщение получит и поисковый бот и через время выбросит этот url из своего кеша.
Если вам нужно заблокировать какую нибудь страницу WordPRess, например ваш_сайт/privet-mir/, можно написать код вот такого плана:
Результат работы предсказуемый:
Я тестировал этот результат только на CMS WordPress, если у вас не получается использовать 404 редирект htaccess на другой системе управления не стоить расстраиваться, по всей видимости код для них может быть похожий. Как альтернатива попробуйте вот такой код:
Он не работает на вордпресс, но работает на сайтах без системы управления контентом.
Ошибка 404 htaccess
Если вы внимательно тестировали результат работы, то наверное заметили вот эту дурацкую ошибку:
Как указать страницу ошибки 404 на htaccess
Для того, чтоб указать какая страница отвечает за обработку 404 ошибки мы можем написать вот такой код перед вызовом нашей ошибки:
Полный код будет выглядеть приблизительно вот так тогда:
И тут как говорится за что боролись, на то и напоролись:
Перед ошибкой 404 мы получаем ошибку 302 и это как говорят СЕО шники очень плохо. В общем если ваш заказчик не СЕО специалист этот вариант прокатит, в альтернативном варианте надо использовать PHP для генерации ответа. Об этом я писал вот здесь: 404 c php
Если мне удастся решить проблему с htaccess 404 redirect 302 я обязательно напишу вам об этом в этой же теме. На данный момент решение проблемы не найдено. Решение есть, описал его ниже.
Аналогично можно было не придумывать каруселей и сделать 404 редирект на htaccess через 301 редирект, разницы по сути никакой, только проще и быстрее:
По сути задача сделать саму ошибку 404 превратилась в банальное перенаправление на 404. Будем искать варианты.
Решение проблемы 302 перенаправления при ответе 404
В корне сайта создаем файл «error.html» и туда забрасываем хтмл код, который генерирует ваш сервер WordPress. Вот результаты работы:
и вот же правильная страница ошибки без редиректа 302:
Теоретически на этом все. Теперь вы знаете как делается ошибка 404 на htaccess.
Если вы имеете другие решения htaccess 404 redirect или перенаправление на 404 без редиректа 301 и 302 буду рад вас выслушать. Обращайтесь, пишите комментарии, жмите лайк.
Но почему то тольок для главной страницы. На другизх страницах, после такой вставки почему-то портится дизайн сайта, т.е изображение и другие кажись стили слетают. Почему так? На главной странице вроде всё ок.
Помогите справиться с проблемой. Есть сайт, который сейчас работает на wp, до этого работал или на джумле или на opencart. Остались хвосты в виде url сайт/?route=product/category&path=44
но это не помогает, все равно 200 ОК отдает.
Добрый день.
Если все правильно, то этот код должен работать, только его нужно добавлять в самом верху и вы забыли о ErrorDocument 404 /error.html надо еще создать файл с ошибкой в корне, error.html хотя бы для теста.
Если не будет работать то этот вариант точно вам поможет
RewriteCond %
RewriteRule ^(.*)$ http://%
будет редирект вместо 404
главное писать код в самом верху файла хтацес.
Если нет то есть еще пхп ответ 404 вот тут о нем писал https://help-wp.ru/seo-wordpress-kak-otpravit-oshibku-404-s-php-chasti/
писал вот такой код полностью.
и не хочет гад.
Не сочтите за наглость, приведу конкретный пример.
вот этой странице нужно прописать 404.
да код вроде правильный, но в самом верху не хватет строчки ErrorDocument 404 /error.html ну и собственно сам файл в корне создайте.
Если не помогает можете открыть header.php вашей темы и забросить в самый верх вот такое:
# END WordPress
# END WordPress
Но при переходе на страницу site.ru/?page=(-url-) почему то переход идет на мою главную страницу. Подскажите может чтото сделать или кто-то знает. Спасибо.
Добрый день.
Вы видимо эту часть упустили ErrorDocument 404 /error.html
+ у вашем случаи не важно будет там 301 или не будет, можно смело через 301 редирект то же самое делать, на страницу вашсайт/404 или любую другую, хотя должно и через ошибку 404 получится
Не работает)
Поставил 301
Redirect 301 /?page=http://(-url-) (-url-)
Также все равно на главную.
Добрый день.
Я никогда такого не делал и сейчас нет времени тестировать, но мне кажется вот такой вариант в htaccess должен работать.
Предположим что у вас за 404 отвечает страница вашсайт/404/, вы хотите чтоб она была без http, код ниже должен работать но я не уверен, может и не работать:
RewriteEngine on
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ http://%
ну или в этом направлении нужно двигаться. Там единственный момент что ВП может вмешаться и все равно менять на https и тогда будет зацикливание
SOS
Не могу победить
php_flag register_globals on
RewriteEngine on
RewriteRule ^([-,0-9,a-z]+)$ /index.php?area=1&p=static&page=$1
Стандартное сообщение с перенаправлением на главную
Помогите, пожалуйста, задействовать при ошибке 404 перенаправление на new404 и убрать стандартное сообщение.
Немного не понял что вам нужно сделать. Пробовали код вставлять из этой статьи, он 100% рабочий под ВП я проверял.
index.php?area=1&p=static&page=new404
Поставил, но на него реагируют только ссылки с любым или несуществующем расширением.
У меня страницы без расширения вызываются.
У меня Koobi.
Мне нужно перенаправление на (-url-)
ErrorDocument 404 /index.php?area=1&p=static&page=new404
остается только скомбинировать ваш хтаццес и этот ответ
У меня страницы tpl.
При вставке ПХП получается
То есть, и «/?more=1», и «/?more=2», и «/?more=3» и так далее.
Добрый день.
Все остается как есть, только меняем первую строчку с такого варианта
Будьте добры, как сделать, чтобы вместо главной страницы при любом ошибочном урл был код 404. Я понимаю, что в Hhtaccess надо прописывать конкретную страницу? А что делать в моем случае?
Не знаю с какого источника вы нашли этот пример, но он реально работает. Получается чистая ошибка 404 на htaccess без редиректов и ошибок 302. Большое вам спасибо.
Только privet-mir замените на свое bla.
Если не ВП то используйте 301 редирект
Вот тут https://help-wp.ru/seo-wordpress-kak-otpravit-oshibku-404-s-php-chasti/ описанно как сделаь ответ 404 на пхп. Думаю в вашей ситуации это единственно правильное решение. Нужно только найти кто принимает на себя неправильные страницы
Не плохое решение, автору респект. Сам хотел придумать и заставить WordPress правильно отдавать 404 ошибки на htaccess но чет не получалось. Собственно мудрил как и вы но не придумал что делать с 302 ошибой. По сути я вместо 404 получал 302 и это очень плохо, вам подтвердит любой нормальный сеошник. Это все равно что сделать запрет на директорию, она как бы есть но поисковики ругаются, хотя страницу можно закрыть и так :))))))
301 redirect на страницу 404.html
Всем доброго времени суток
Задача стоит такая:
На сайте настроена отдача 404й ошибки без изменения урла, нужно сделать 301 редирект на статическую страницу 404.html которая будет отдавать 404 статус.
CHTTP::SetStatus(404); или header(«HTTP/1.0 404 Not Found»);
переключает статус для данной страницы на 404. добавьте в начало кода страницы 404.php
Цитата |
---|
Также страница 404.html отдает статус 200 а не 404, как с этим быть? |
А с чего бы существующей странице отдавать статус что она не существует?
Но если прямо очень надо, то в станртной 404.php сделайте LocalRedirect(‘/404.html’,301), в Обработке адресов правило «#^/404.html» и файл «/404_404.php» и в него поместите то что у вас сейчас в 404.php.
Вроде правильно же написал?
переключает статус для данной страницы на 404. добавьте в начало кода страницы 404.php
Это ничего не меняет. так как вконце идет LocalRedirect.
Suntechnic, 301 редирект идет не со всех страниц а только с несуществующих, тоесть если раньше у меня были ссылки:
http://mysite/tovar_1
http://mysite/tovar_2
http://mysite/tovar_3
А потом товар 2 сняли с продаж но в поисковиках он остался проиндексированным, нужно чтоб при переходе по ссылке на него происходил 301 редирект на 404.html. Остальные товары же как положено отдают 200.
Цитата |
---|
Suntechnic пишет: Но если прямо очень надо, то в станртной 404.php сделайте LocalRedirect(‘/404.html’,301) |
Вот это и сделал, а вот по следующему пункту непонятно
Цитата |
---|
Suntechnic пишет: в Обработке адресов правило «#^/404.html» и файл «/404_404.php» и в него поместите то что у вас сейчас в 404.php. |
Добавил правило и в «404_404.php» прописал:
Сегодня я расскажу о нескольких полезных вещах, которые можно сделать с файлом htaccess. Эти вещи, которые вы сможете использовать на своих веб-сайтах, сделают работу с сайтами более удобной.
1. Перенаправление посетителей при обновлении сайта.
Замените 123.123.123.123 на Ваш ip-адрес, а также замените page.html на ту страницу, которую будут видеть пользователи, зашедшие на сайт.
2. Определенная страница с ошибкой 404.
Когда пользователи обращаются к странице на Вашем сайте, которой не существует, то им показывается ошибка 404. Если вы хотите сделать ее определенной страницей, то в файле htaccess следует прописать следующий код:
Перенаправлять посетителей в таком случае удобно на главную страницу сайта.
3. Редирект на перемещенные или переименованные страницы.
Если вы переименовали или переместили некоторые страницы на сайте и хотите, чтобы посетители увидели уже новые страницы, даже если они обращаются по старому адресу, следует в файл htaccess прописать следующий код:
Также вы можете использовать такой редирект для того, чтобы страница не потерялась для поисковиков.
4. Запрет на просмотр директории.
Если у Вас в папке на сайте нет файла index, то любой пользователь может посмотреть, какие файлы в ней лежат.
Чтобы избежать таких вещей, следует прописать такой код:
На некоторых хостингах такая функция прописана по-умолчанию, в таком случае Вам не стоит беспокоиться.
5. Создание красивых URL.
Несомненно, что из этих двух ссылок первая выглядит намного привлекательнее.
С помощью файла htaccess и апач модуля, который называется mod_rewrite, вы сможете переделать свои ссылки на более красивые и короткие.
Вот некоторые примеры с кодом:
P.P.S. Чтобы с нуля создать такой файл Вам следует открыть, например, блокнот, вписать в него строчку
нажать «Сохранить как. «, в имя файла ввести .htaccess и выбрать «все файлы».
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.frontdeskapp.com
Перевел: Сергей Патин
Урок создан: 22 Июня 2009
Просмотров: 108517
Правила перепечатки
5 последних уроков рубрики «Для сайта»
Эффекты блочного раскрытия
Сегодня мы хотели бы поделиться несколькими идеями касающегося эффекта блочного раскрытия, которую вы можете использовать для своих проектов.
20 бесплатных тем для WordPress в стиле Material Design
Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.
20 сайтов с креативным MouseOver эффектом
Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.
45+ бесплатных материалов для веб дизайнеров за август 2016
Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.