Проблема Ответ сервера 200 на несуществующую страницу

Тема в разделе "Общие вопросы оптимизации", создана пользователем arhangel1991, 5 апр 2017.

Статус темы:
Закрыта.
  1. arhangel1991

    arhangel1991 На форуме с: 5 апр 2017 Сообщения: 5

    Добрый всем день. Только начал заниматься версткой сайтов и их оптимизацией. Это мой первый написанный сайт. Проблему по 404 ответу от сервера в googlе искал, но перепробовав большинство вариантов так и не дали результатов. Может тут кто поможет. В общем на запрос несуществующей страницы ответ сервера 200, а должен быть 404. Сайт www.comp-doc.h1n.ru на бесплатном домене, и бесплатном хостинге под управлением Apach и php версии 5.4.16. Сайт написан на html + css. В файле robots.txt прописано только запрет для всех ботов
    User-agent: *
    Disallow: /
    В файле .htaccess прописано только для кеширования шрифтов, редиректа на www и чтобы была видна ссылка на 404 страницу,

    <IfModule mod_expires.c>
    <FilesMatch \.(woff)$>
    ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresActive on
    ExpiresByType fonts/woff "access plus 7 day"
    </IfModule>


    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^comp-doc.h1n.ru
    RewriteRule (.*) http://www.comp-doc.h1n.ru/$1 [R=301,L]


    ErrorDocument 400 /404.html
  2. leshii

    leshii Модератор На форуме с: 4 сен 2011 Сообщения: 2.585 Команда форума

    https://yadi.sk/d/FJ4zhYfv3GkiLr проблема решена?
    arhangel1991 нравится это.
  3. arhangel1991

    arhangel1991 На форуме с: 5 апр 2017 Сообщения: 5

    К сожалению нет, ищу способы но большинство гугловских ответов по cms"кам (((
    может что в самом 404.html надо прописать? какую нить команду, уже неделю вожусь с этой проблемой, я так понимаю ответ сервера на эту страницу должен быть 404 а он 200, я немного накосячил в htaccess поменял errordocument 400 на errordocument 404 , после этого ссылка на несуществующую страницу стала видна, а код стал 200

    Вложения:

    • 123.png
      123.png
      Размер файла:
      14,1 КБ
      Просмотров:
      28
  4. leshii

    leshii Модератор На форуме с: 4 сен 2011 Сообщения: 2.585 Команда форума

    так-с.
    во-первых. 404 код должны отдавать несуществующие адреса. И у вас именно так и происходит.
    во-вторых, 404.html это существующая страница, потому она и отдает код 200. А вот как изменить ее - хз. Можно, например, поиграться с http-заголовками, как здесь http://www.m15.ru/server_response_code
    arhangel1991 нравится это.
  5. arhangel1991

    arhangel1991 На форуме с: 5 апр 2017 Сообщения: 5

    Хорошо, попробую отпишусь, спасибо за подсказку!!!!
  6. Miha_Kregov

    Miha_Kregov На форуме с: 23 июн 2011 Сообщения: 452

    Удалите в .htaccess эту строчку ErrorDocument 400 /404.html
  7. arhangel1991

    arhangel1991 На форуме с: 5 апр 2017 Сообщения: 5

    Отписываюсь по решению проблемы с ответом сервера на несуществующую страницу, ответ был 200, а должен быть 404. Может данная инструкция в будущем кому нибудь пригодится, так как сам потратил много времени на ее решение, спасибо пользователю leshii за ссылку изучив которую и получил желаемый результат. http://www.m15.ru/server_response_code / сервер модуль Apach PhP 5.4.16(native)
    результат [​IMG] В общем что я сделал, в htaccess прописал 1) ErrorDocument 404 /404.php
    2) создал 404.php и перед структурой html вставил следующее:


    <?php
    function checkUrl( $url )
    {
    if( preg_match( "/^http.*/i", $url ) == false )
    header( 'Location: http://comp-doc.h1n.ru/404.php' );
    }

    ?>
    <html>
    <head>
    ...
    </head>
    <body>
    ...
    </body>
    </html>
Статус темы:
Закрыта.