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

  • Автор темы Автор темы golos81
  • Дата начала Дата начала

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. Как быть?
 
golos81

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

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

Зачем этот индусский код и бубен с функциями?
 
ys
да ладно. если добавить в название функции слово HTTP, в код - exit, то получится весьма миленькая функция
 
Вот редирект-то на главную, как раз, со всех сторон глупость.
А "такой статьи нету" можно и написать. Но не вместо 404, а наряду.

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

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


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