• Здравствуйте уважаемые форумчане. Проверил главную страницу сайта через сервис http://gtmetrix.com, в рекомендациях Minimize redirects увидел 2 непонятных редиректа:

    http://www.site.ru/wp-content/themes/tema/none
    http://www.site.ru/404/

    Подскажите пожалуйста, что за редирект в первой строчке ?

    И как убрать этот редирект 404 ? Как показали тесты, они вызываются и на внутренних страницах.

    Код моего 404 редиректа:

    function redirect_404() {
    	if ( is_404() && $_SERVER['REQUEST_URI'] != '/404/' )
    		wp_redirect('/404/');
    }
    add_action('template_redirect', 'redirect_404');

    Спасибо.

Просмотр 8 ответов — с 16 по 23 (всего 23)
  • Правльный шаблон 404 не только отображает какой-то текст о том, что она не найдена, но и шлет правильную информацию от сервера.

    Немного не так 🙂 Вначале сервер «отвечает» и только потом на код ответа ищется и выдаётся нужная страница. (это если упрощенно)

    Потерто …

    Не надо никуда никого перенаправлять. Страница 404 отдаётся именно по тому url, который отсутствует. Это нормально и правильно.

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

    Страницы ошибок не нужно закрывать от индексации. Ни в коем случае.
    А единой страницы 404 не может быть по определению. 404 — это отсутствие конкретной страницы. Если сделать редирект, это будет уже не 404, а 301.

    Вот представьте, что у вас есть шкаф. Первая полка пустая. Вас спрашивают: «На первой полке что-то есть?» Если стоит нормальный 404, вы отвечаете «Здесь, на первой полке, пусто». А если редирект, то вы говорите «Вместо первой полки теперь пятая, посмотри там». А там (на пятой) лежит бумажка с надписью «здесь пусто». То есть там не пусто (бумажка же есть), а вы говорите, что якобы пусто.

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

    Т.е. итог таков. Если у меня будет формироваться 404 страницы движком, то этих 2-х редиректов не будет. Если будет единая 404 страница, то будут редиректы. Правильно ?

    Грубо говоря, да.

    Но на самом деле не совсем верно. 404 — это не как таковая страница, а ошибка. Ошибка 404 в переводе на русский гласит «страница не найдена». То есть страницы и нет. Движок говорит роботу «здесь нет страницы». А пользователю показывает шаблон (404.php) вместо этой страницы. И всё это происходит не по какому-то единому адресу, а по адресу несуществующей страницы.

    Почему не нужно создавать редиректы и закрывать от индексации очень легко понять, зная, что такое 404. Например, если вы введёте просто случайный набор букв после домена (через /), то есть что-то в духе site.ru/njksdnvkns, это будет 404 ошибка. Потому что такой страницы нет. Но вас же не беспокоит, что нет страницы со случайным набором букв. Вот и остальные 404 не должны беспокоить.
    Но при это нет страницы именно site.ru/njksdnvkns, а не site.ru/404. Если вы создадите её, она как раз будет. То есть не надо обманывать браузер и ботов, редиректами с несуществующей страницы на существующую, но якобы 404.

    Немного не так 🙂 Вначале сервер «отвечает» и только потом на код ответа ищется и выдаётся нужная страница. (это если упрощенно)

    Нууу я это и пытался объяснить в этом предложении 🙂

    Протокол HTTP подразумевает, что если страница ненайдена, то должен прийти правильный ответ от сервера.

Просмотр 8 ответов — с 16 по 23 (всего 23)
  • Тема «Непонятные редиректы» закрыта для новых ответов.