Eldar Kononov.
/*
* Barba crescit caput nescit
*/
On Sun, 4 May 2003, Igor Sysoev wrote:
+|>
+|>On Sun, 4 May 2003, joo wrote:
+|>
+|>> 04.05.2003 в 11:17 Вы писали:
+|>>
+|>> A> Да проблема в том, что мы написали такую штуку на PHP, которая по
+|>> A> URL-адресам, которых на самом деле нет, от дает нужные страницы,
+|>> A> например:
+|>> A> Обращается клиентпо адресам:
+|>> A> http://domain.ru/beer/klinskoye/
+|>> A> http://domain.ru/beer/zhigulyovskoye/
+|>> A> А на самом деле директорий /beer/klinskoye/ и /beer/zhigulyovskoye/ не
+|>> A> существует и происходит 404-ка. А в .htaccess прописано:
+|>> A> ErrorDocument404 /beer/treater.php
+|>> A> treater.php -- это обработчик, который делает запрос к БД и отдаёт
+|>> A> нужную страничку.
+|>> A> А проблема в том, что клиенту то всё равно отдается 404-ка и
+|>> A> соответственно error_log у Апача весь засорен 404-ками!!!
+|>>
+|>> А если в PHP сначала отдавать заголовок 200,
+|>> а уже затем страничку?
+|>
+|>Не поможет, 404 пишется в лог ещё до того, как вызывается ErrorDocument.
+|>
Если уж программисты придумали такой извращенный способ выдачи контента,
то предлагаю извращенный (и скорее теоретический) способ решения проблемы:
ErrorLog "| grep -v 'Not found' > domain-error_log"
В принципе, такой способ не столь и критичный, если нагрузка на сервер
небольшая.
А вообще, самым простым (как мне кажется) было бы в данном случае удалить
1 строку из http_core.c (которая вызывает ap_log_rerror),
после которой возвращается NOT_FOUND.