Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

200 всесто 404 ошибки

00 голосов
4
В .htaccess прописано

Код
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-l
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
   RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
</IfModule> 

В настройках модуля галочка "Посылать в заголовке статус 200 на 404 ошибку" не стоит.

При этом на любой несуществующий адрес сервер отдает 200 статус вместо 404 ошибки.

Как при RewriteEngine On сделать что бы работала 404 ошибка?
спросил 07 Май, 13 от RUSHipimp (200 баллов)

4 Ответы

00 голосов
На 404.php переходит?
(Что нить туда добавьте и смотрите, появится ли это на странице)
Если же 200 выдает на комплексных компонентах , то смотрите в файлах component.php
такой участок кода
   
Код
 if(!$componentPage)
    {
        $componentPage = "news";

        if($arParams["SET_STATUS_404"]==="Y")
        {
            $folder404 = str_replace("\\", "/", $arParams["SEF_FOLDER"]);
            if ($folder404 != "/")
                $folder404 = "/".trim($folder404, "/ \t\n\r\0\x0B")."/";
            if (substr($folder404, -1) == "/")
                $folder404 .= "index.php";

             if($folder404 != $APPLICATION->GetCurPage(true))
                CHTTP::SetStatus("404 Not Found");
        }
    }

и проверяйте, по какой ветке условия проходит и почему 404 не выставляется -
Код
CHTTP::SetStatus("404 Not Found");
как раз и должна отдавать 404. Может в параметрах вызова компоненты не установлен
Код
SET_STATUS_404
ответил 07 Май, 13 от Cyber (540 баллов)
00 голосов
На 404.php переходит

200 выдается на всех не существующих страницах, не зависимо от того комплексный это компонент или нет.
ответил 08 Май, 13 от RUSHipimp (200 баллов)
00 голосов
в коде 404 страницы есть такое?
Код
CHTTP::SetStatus("404 Not Found");
@define("ERROR_404","Y");
 
ответил 11 Июль, 13 от Nevels (280 баллов)
00 голосов
Поставил временно(а может и не временно)

Код
CHTTP::SetStatus("404 Not Found");

ответил 15 Окт, 13 от RUSHipimp (200 баллов)

Похожие вопросы

0 голосов
5 ответов
спросил 14 Ноя, 13 от marcel (160 баллов)
0 голосов
8 ответов
спросил 14 Май, 13 от nonameXXX (260 баллов)
0 голосов
5 ответов
спросил 09 Май, 13 от XiaoDong (200 баллов)
0 голосов
10 ответов
спросил 27 Янв, 13 от superher (260 баллов)
0 голосов
2 ответов
спросил 28 Апр, 14 от Kiriel (2,010 баллов)