Доброго утра, есть .htaccess Код (Text): Order Deny,Allow Allow from all AddDefaultCharset utf-8 Options -Indexes DirectoryIndex index.php RewriteEngine On RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F] RewriteCond %{REQUEST_URI} !^/index\.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] в таком виде любой запрос отдает заголовок 200, даже если файл не существует даже если я в индекс.пхп обрабатываю запрос, при отсутствии нужного выдаю Код (Text): header( "HTTP/1.1 404 Not Found" ); то ответ сервера все равно 200 почему? как принудительно сменить заголовок?.. спасибо заранее
в чем глубокий смысл делать редирект к индексу если сработает внутренний механизм запрета запроса? . - (точка минус) для таких случаев. то есть рерайта не произойдет, а по флагу сработает обработчик статуса 403. попробуйте для начала запихнуть 404 в реализацию 1.0 протокола. во-вторых без исходника сложно понять как у вас скрипт со статусом работает. статус он может быть только один. соответственно вы ставите 404 а потом где-то дальше вы же опять выставляете 200. в поток пойдет последний.
вангую, что у автора есть нежелательный вывод ДО header() и поэтому он не срабатывает. обычно это - либо BOM, - либо в конце подключаемого файла "?>" и после него пустая строка, - либо вываливается какой-то Warning на который автор х забил.