Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: header 404
Форумы портала PHP.SU » PHP » Программирование на PHP » header 404

Страниц (1): [1]
 

1. ZeiZ - 16 Марта, 2011 - 00:58:46 - перейти к сообщению
есть небольшая функция, которая ловит ошибки в переменных $_POST, $_GET, $_COOKIES, $_FILE и пр, так же используется при непридвиденых обстоятельствах (mysql_num_rows($sq) == 0)) при том, что результат должен быть получен 100%, т.е. некая обвертка ошибок. Она пишет лог и перенаправляет на 404.php

404.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   header("HTTP/1.0 404 Not Found");
  3.   //header("Status: 404 Not Found");
  4. ?>


первый вариант вроде правильный, но и 1-ый и 2-ой попробовал - косяк.
браузер отвечает 200-OK! и пустая страница.

Как правильно написать header???
Спасибо

P.S. По логам чаще всего "спотыкаются" поисковики, более того они индексируют эти страницы. Особенно рамблер-бот, который, если видит id, то начинает бродить по ней, вплоть до id=1500, хотя реальный ИД - (например) 3,15,18,24,25-32,105. при остальных идёт редирект на 404.php, который он индексирует, хотя и пустой, но "HTTP/1.1 200 OK" вместо 404.
(Добавление)
PP.S. Не совсем в курсе http состояния протокола, но можно ли без особых костылей сделать: скажем поисковикам HTTP/1.0 404 Not Found и при этом вывести некий шаблон с html содержанием а-ля
http://slando[dot]ru/0[dot]html или http://habrahabr[dot]ru/1/ - вот такие заглушки.
PPP.S. slando - codeigniter, habra - livestreet CMS + Sphinx, если кому интересно и кто не знает =)
2. Ch_chov - 16 Марта, 2011 - 05:41:36 - перейти к сообщению
Для поисковиков есть robots.txt и лучше отдавать им не 404, 301 редирект.
3. ZeiZ - 16 Марта, 2011 - 14:00:26 - перейти к сообщению
Ch_chov Спасибо

а по вопросу?
4. Viper - 16 Марта, 2011 - 14:33:28 - перейти к сообщению
ZeiZ а если отослать 403 тоже будет 200? А если запросить несуществующий урл?
5. ZeiZ - 16 Марта, 2011 - 15:23:33 - перейти к сообщению
Viper

Выдаёт

CODE (htmlphp):
скопировать код в буфер обмена
  1. HTTP/1.1 403 Forbidden
  2. Date: Wed, 16 Mar 2011 13:21:21 GMT
  3. Server: Apache
  4. X-Powered-By: PHP/5.2.10
  5. Vary: Accept-Encoding,User-Agent
  6. Content-Encoding: gzip
  7. Content-Length: 20
  8. Keep-Alive: timeout=15, max=55
  9. Connection: Keep-Alive
  10. Content-Type: text/html
  11.  


но при этом опять чистая страница, а надо как минимум ошибку состояния (как в браузерах по умолчанию)

написал так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   header('HTTP/1.1 403 Forbidden');
  3. ?>
6. Мелкий - 16 Марта, 2011 - 15:35:00 - перейти к сообщению
ZeiZ пишет:
но при этом опять чистая страница, а надо как минимум ошибку состояния (как в браузерах по умолчанию)

Ну так и высылайте следом содержание страницы-ошибки.
Всё, код ошибки получен, поисковики отвалятся, проигнорировав дальнейший документ. А простым смертным (с) страница покажется.
7. JustUserR - 16 Марта, 2011 - 15:46:27 - перейти к сообщению
ZeiZ пишет:
Как правильно написать header???
В качестве возможного варианта решения предполагаемой задачи, заключающейся в осуществлении модификации передаваемых информационных полей конфигурации ассоциированного HTTP-документа, допустимо использование предшествующего управляющего CGI-приложения, обеспечивающего внедрение полной схемы управлением переназначения правиами ассоциации виртуальных URL-путей и целевых исполняемых объектов, на основании чего возможно проведение передачи произвольных HTTP-состояний в управляемой виртуальной области хоста web-сервера
8. Viper - 16 Марта, 2011 - 15:52:20 - перейти к сообщению
ZeiZ собстно Мелкий прав. После посылки хидера показывайте страницу 404.
9. ZeiZ - 16 Марта, 2011 - 15:57:26 - перейти к сообщению
Мелкий вообще, да, так и хотел. спасибо +1 карме Радость
10. JustUserR - 16 Марта, 2011 - 16:08:25 - перейти к сообщению
Viper пишет:
ZeiZ собстно Мелкий прав. После посылки хидера показывайте страницу 404.
Использование предполагамого варианта решения целевой задачи не осуществляет генерацию пользовательских инстнаций web-страниц, производимых в единой области управления сопоставлением целевых виртуальных URL-адресов и реальных исполняемых объектов, в силу чего достижение генерации унифицированного однопроходного HTTP-документа не производится

 

Powered by ExBB FM 1.0 RC1