Вопрос по modrewrite и 404 ошибке

golos81

Новичок
Вопрос по modrewrite и 404 ошибке

Делаю ЧПУ в новостях через modrewrite. В .htacces указал правило: RewriteRule ^news/([0-9]+)/$ /index.php?NewsId=$1 [QSA] [L]

Если в адресной строке набираю domen.ru/news/111/, то все нормально, в index.php приходит id новости (111) и по нему достаю новость из БД. Проблема возникает с обработкой 404-ой ошибки, т.к. если набираю domen.ru/news/1112/, и такой новости нет, то сервер отдает 200ок, а мне надо 404. Как быть?
 

kode

never knows best
header("HTTP/1.1 404 Not Found"); но имхо неправильный подход.
 

ys

отодвинутый новичок
golos81

Чем непонравился:

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

Зачем этот индусский код и бубен с функциями?
 

Фанат

oncle terrible
Команда форума
ys
да ладно. если добавить в название функции слово HTTP, в код - exit, то получится весьма миленькая функция
 

Фанат

oncle terrible
Команда форума
Вот редирект-то на главную, как раз, со всех сторон глупость.
А "такой статьи нету" можно и написать. Но не вместо 404, а наряду.

Если же выбирать между 200 и 404, то стандарт однозначно говорит в пользу второго.
 

kode

never knows best
Автор оригинала: kode
Потому-что надпись "Такой статьи нету" или редирект на гл. страницу не вызовет недоумения в отличии от ошибки 404.
"или" на "и" замени - это я ввиду имел :)
 

kode

never knows best
Но согласись что выдавать 404 если статьи нету это неочень очевидно.
 

ys

отодвинутый новичок
Автор оригинала: kode
Но согласись что выдавать 404 если статьи нету это неочень очевидно.
Не очень очевидно кому?

Первое. Ни кто не запрещает выдать контент вместе с 404 кодом.
Только в случае IE, он (контент) должен быть больше определенного объема (не знаю точно какого).
И вообще, представте себя на месте посетителя, которому, вместо предупреждения об отсутствии страницы, выдали первую страницу сайта...


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