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@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.