Влияние заголовка 404 на контент страницы

satbauer
На сайте с 07.07.2010
Offline
68
490

Доброго времени суток.

Столкнулся с такой вот фичей первый раз ... после долгого анализа, разбора кодов, поисков в яндексе, в гугле, чтении всех мануалов, в понимании ситуации не прибавилось :(

Прошу гуру подсказать, может кто сталкивался...

Пишу 404ю страницу для дизайна (движек самописный, но это не суть).

страница нормально выглядит - все как нада отображается, НО

если перед выводом страницы передать хедер

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

А это НЕОБХОДИМО - собственно страница то 404я, то есть весь смысл в том чтобы ее отдать.

В ХТМЛ коде страницы появляются лишние символы.

ПОСЛЕ открытия body - четырехзначное число, иногда вместо цифр появляются буквы, при обновлении иногда цифры/буквы меняются.

ПЕРЕД закрытием body - стабильно появляется НОЛЬ.

(естественно, что при появлении символов ДО начала хтмл кода, весь блок хтмл разметки <head></head> сдвигается в body )

то есть

ПЕРЕДАЛ ХЕДЕР 404 - ЕСТЬ лишние символы в коде страницы

ЗАКОММЕНТИРОВАЛ ХЕДЕР 404 - НЕТ лишних символов в коде (все прекрасно)

Хзн что оно и откуда :(

Ткните носом хоть куда копать - что искать, фантазия иссякла ...

tomasoyer
На сайте с 24.03.2013
Offline
55
#1

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

Попробуйте. Было подобное когда заголовок не соответствовал возможностям сервера.

[Удален]
#2

самой первой строчкой напишите

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



---------- Добавлено 22.07.2013 в 00:18 ----------

tomasoyer, опередил

satbauer
На сайте с 07.07.2010
Offline
68
#3
tomasoyer:
header("HTTP/1.0 404 Not Found");

Попробуйте. Было подобное когда заголовок не соответствовал возможностям сервера.

Действительно НОЛИК вместо единицы помог ...

странно вообще это ... что сервак не хочет сказать "по люцки" мол так и так, версия не та, используй мою - вот такую ...

Но есть одно занятное замечание ...

Естественно проверяю результат, и смотрю на статус возвращаемый сервером, при обращении к несуществующей странице (сама страница теперь в порядке).

Используя print_r(get_headers(мой урл));

я получаю:

[0] => HTTP/1.1 404 Not Found

Не смотря на то что изначально задавалось

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

сервер естественно один и тот же :)

ПС

Спасибо огромное за подсказку!

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