ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] 404 -> 200




On Sun, 22 Jul 2001, Vsevolod Melnikov wrote:

> > > Не подскажет ли кто, как заставить Апач вместо кода возврата 404 отдавать
> > > другой код, например, 200?
> > 
> > Можно попробовать перенаправлять ErrorDocument'ом на cgi,
> > который бы выдавал примерно такое:
> > 
> > Status: 200 OK
> 
> Я тут с этой строкой поигрался и вот чего не понимаю - что это за строка,
> в смысле слова Status? Дело в том, что я не смог найти Status  и
> его описания в RFC 2616 (который описывает HTTP 1.1). Ни хедера такого
> вроде бы нет, ни в ответе сервера это слово не описано.

Ну, как тут не раз написали, к HTTP это не иммет отношения.
Это лишь способ передать статус из CGI в Апач. Если используется mod_perl,
то статус ставиться через r->status(HTTP_OK) или
через r->status_line("200 OK").
В php, возможно, через header() - про него я ничего не знаю.

> > Content-Type: text/html
> 
> Собственно, на этой машине стоит Апач со встроенным PHP 4.x. До написания
> письма я пытался код возврата изменить функцией header, но не вышло. А
> сейчас свежим взглядом посмотрел и написал header("HTTP/1.1 200 OK");
> и все получилось. На самом деле было интересно почитать пример скрипта,
> а то я было тоже подумал, что тут сделать ничего нельзя. И про META было
> тоже интересно.

Про мету я не в курсе.

> > Только вот зачем ?
> 
> Гм, наверное и правда стоит описать проблему. У нас есть ряд сайтов,
> которые используют обработчик 404-ой ошибки, причем не только для того
> чтобы сказать "А нету такого файла", но и для показа полноценного
> документа сайта. Например, пришел запрос на www.company.ru/about/ и
> каталога about в природе нет, а обработчик 404-ой ошибки подсовывает
> клиенту полноценную страничку с информацией о компании или о чем там
> нужно.

Ну в этом случае, может быть, лучше по таким ссылкам расположить
реальную информацию ?

> Другой аспект этой проблемы такой. Зашел я как-то в начале месяца в МЭИ и
> случайно народ решил посмотреть на пару наших сайтов. Я смотрю, а страницы
> с 404-ой ошибкой не показывается. Чего и почему - неизвестно, но я
> предположил, что местный прокси так настроен. А узнать про это подробнее
> тогда я не смог, ибо смотрели с клиентской машины и как там устроена сеть
> никто просто не знал.

Я думаю, такие кривые конфигурации нельзя поощрять, подстраиваясь под них.

> Третий аспект проблемы - это индексация с помощью ЯndexSite. Как он видит
> код 404, так и не индексирует. Что иногда очень огорчает.

Ну а какой смысл индексировать несуществующие старницы :)?

> Вот. А еще тут народ высказал мнение, что это все надо решать с
> применением mod_rewrite. Правильно ли это? С mod_rewrite случая
> разобраться не было, но может это и правда наиболее правильное решение?

Често говоря, навскидку мне в голову не приходит решение с помощью
mod_rewrite. Вообще же, мой опыт общения с mod_rewrite говорит о том,
что в большинстве случаев его можно успешно применять, только если
хорошо представляешь себе потроха Апачи и особенности реагирования
тех или иных модулей на mod_rewrite.

Игорь Сысоев

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.