Adam Kucza » Archiwum bloga » Kody Apache’a

Adam Kucza

Nie kończymy się bawić starzejąc, lecz starzejemy się kończąc się bawić...

blogger czy logger?

Kody Apache’a

Autor: Adam Kucza o wtorek 16. styczeń 2007

Ostatnio miałem problem ze prawidłową obsługa ErrorDocument, tj. zapisaniem w logu serwera httpd wpisu o kodzie 404.
Gdy mamy np. błędną stronę typu /index.php?page=NieMaTakiejStrony i wiemy, że faktycznie takiej strony nie ma, to samo ustawienie w httpd.conf:

ErrorDocument 404 /index.php?page=404

powodowało, że wyświetlała mi się przygotowana wcześniej w CMSie strona z treścią informacyjną o nieznalezieniu strony, natomiast w logach apache’a widziałem wpis typu:

/index.php?page=404 200 OK

Problem polegał na tym, że widząc informację o błędzie, w logu serwera www zapisywała się informacja, że nie był to błąd.
Musiałem zastosować małą sztuczkę. W httpd.conf ustawiłem:

ErrorDocument 404 /404.php

Czyli plik inny aniżeli jeden spośród stron dynamicznych ładowanych z contentu. Jego źródło wygląda następująco (tylko 2 linijki):

header(”HTTP/1.0 404 Not Found”);
echo file_get_contents(”/index.php?page=404″);

Czyli najpierw wysyłam do serwera www nagłówek z kodem 404 Not Found, a następnie wyświetlam treść strony, do której poprzednio prowadziła użytownika aplikacja CMS.
Dzięki tej sztuczce w logach apache’a mamy wpis

/index.php?page=NieMaTakiejStrony 404 -

Czyli użytkownik widzi informację o nieznalezieniu strony, a w logach apache’a zapisuje się info o błędzie strony.

Po takim tricku jesteśmy szczęśliwi.

Poniżej zamieszczam listę kodów błędów - napewno komuś się przyda.

Successful Client Requests
200 - OK
201 - Created
202 - Accepted
203 - Non-Authorative Information
204 - No Content
205 - Reset Content
206 - Partial Content

Client Request Redirected
300 - Multiple Choices
301 - Moved Permanently
302 - Moved Temporarily
303 - See Other
304 - Not Modified
305 - Use Proxy

Client Request Errors
400 - Bad Request
401 - Authorization Required
402 - Payment Required (not used yet)
403 - Forbidden
404 - Not Found
405 - Method Not Allowed
406 - Not Acceptable (encoding)
407 - Proxy Authentication Required
408 - Request Timed Out
409 - Conflicting Request
410 - Gone
411 - Content Length Required
412 - Precondition Failed
413 - Request Entity Too Long
414 - Request URI Too Long
415 - Unsupported Media Type

Server Errors
500 - Internal Server Error
501 - Not Implemented
502 - Bad Gateway
503 - Service Unavailable
504 - Gateway Timeout
505 - HTTP Version Not Supported

Czasami się przydaje.

» wpis obejrzano 6582 razy przez 1718 internautów «