header в чем дело?

O
На сайте с 07.02.2010
Offline
38
1638

<?

header ("HTTP/1.1 404 Not Found");

header ("Status: 404 Not Found"); ?>

ставлю в начало страницы 404

а все равно страница отдает 200 а не 404 при ее загрузке

в чем дело?

S1
На сайте с 17.03.2010
Offline
62
#1

а если так ?

<?php header("HTTP/1.1 404 Not Found"); ?>

<?php header("Status: 404 Not Found"); ?>

а можно еще сделать

<?php

header ("HTTP/1.0 404 Not Found");

header ("HTTP/1.1 404 Not Found");

header ("Status: 404 Not Found");

exit();

?>

Jekyll
На сайте с 04.05.2009
Offline
136
#2

Вы точно ничего не выводите перед использованием функции header?

RO
На сайте с 13.07.2009
Offline
88
#3

а как вы проверяете ответ? через get_headers ?

O
На сайте с 07.02.2010
Offline
38
#4
RedOK:
а как вы проверяете ответ? через get_headers ?

в логах сервера

okmonster добавил 07.08.2010 в 03:29

RedOK:
а как вы проверяете ответ? через get_headers ?

вроде не вывожу...!

okmonster добавил 07.08.2010 в 03:35

HTTP/1.1" 200

вот что в логах

okmonster добавил 07.08.2010 в 03:53

header ("HTTP/1.1 404 Not Found");

header ("Status: 404 Not Found");

include("404/404.html");

exit();

вот обработчик

okmonster добавил 07.08.2010 в 04:17

HTTP/1.1 200 OK

Server: nginx/0.7.67

Date: Sat, 07 Aug 2010 00:17:17 GMT

Content-Type: text/html; charset=windows-1251

Connection: keep-alive

X-Powered-By: PHP/5.2.6-1+lenny8

Vary: Accept-Encoding

Length: unspecified [text/html]

[Удален]
#5
вроде не вывожу...!

А если точно?

var_export(headers_sent());
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

Может хватит ерундой страдать а?

в .htaccess пропишите:

ErrorDocument 404 /404.php

и уже в 404.php делайте всё что угодно. Ваша задумка бред изначально.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
O
На сайте с 07.02.2010
Offline
38
#7
LEOnidUKG:
Может хватит ерундой страдать а?
в .htaccess пропишите:
ErrorDocument 404 /404.php

и уже в 404.php делайте всё что угодно. Ваша задумка бред изначально.

думаете такой умный. вопрос стоит об искуственном вызове ошибки. сперва скрмпт делает проверку на наличие страницы и только потом либо ее выводит либо эмулирует ошибку

dvaes
На сайте с 03.09.2007
Offline
65
#8

иногда хостинг режет хэдеры со статусами страниц

O
На сайте с 07.02.2010
Offline
38
#9
So1:
А если точно?
var_export(headers_sent());

var_export(headers_sent());

выдает рту

okmonster добавил 07.08.2010 в 14:54

dvaes:
иногда хостинг режет хэдеры со статусами страниц

когда я запускаю голую страницу ошибки

и в начале пишу

<?

header ("HTTP/1.1 404 Not Found");

header ("Status: 404 Not Found"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">

то статус 404 возвращает. а если

через другой сткрипт вот так

include("404/404.php");

exit();

то нет

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#10
okmonster:
думаете такой умный. вопрос стоит об искуственном вызове ошибки. сперва скрмпт делает проверку на наличие страницы и только потом либо ее выводит либо эмулирует ошибку

Боже как Вы мне надоели то а...

В файле, который отвечает за 404 ошибку пишите в самом начале:

<?

header('HTTP/1.1 404 Not Found');

header('Status: 404 Not Found');

?>

Потом в движке её вызываете:

<? header("Location: 404.php");exit(); ?>

По хедерам будет сначало 302 редирект, а потом сразу 404, что ЕССЕСНО для данной ситуации...

Можно и от 302 избавиться, если ошибка будет обрабатываться внутри движка и редирект вообще не нужен, тогда:

вместо:

<? header("Location: 404.php");exit(); ?>

нужно писать:

header('HTTP/1.1 404 Not Found');include($_SERVER['DOCUMENT_ROOT'].'/404.php');

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий