1   2   3   4   5   6   7   8 

Obsługa błędów 404 Not Found w Apache/PHP. Przewodnik

2. Dyrektywa ErrorDocument

Obsługę błędnych adresów URL przez serwer Apache ustalamy dyrektywą ErrorDocument. Dyrektywa ta może zostać umieszczona w ogólnym pliku konfiguracyjnym serwera Apache httpd.conf lub w plikach .htaccess. Ponieważ firmy hostingowe zazwyczaj nie umożliwiają modyfikowania pliku httpd.conf, zatem w przykładach wykorzystam pliki .htaccess.

Utwórz trzy pliki: .htaccess, error-404.html, error-404.css i umieść je w folderze głównym htdocs/ serwera Apache.

W pliku .htaccess wprowadź jedną linijkę:

ErrorDocument 404 /error-404.html

W pliku error-404.html wprowadź dowolny komunikat, zaś w stylach error-404.css dowolnie ustal wygląd witryny. Zwróć uwagę na to, by użyte adresy URL były bezwzględne. Adresy występują w dwóch miejscach:

Jeśli teraz podasz w przeglądarce adres:

http://localhost/lorem/ipsum/dolor.html

ujrzysz wykonaną przed chwilą stronę błędu.

Jeśli użyjesz względnych adresów URL, obsługa błędu 404 nie będzie wykonana poprawnie. Dyrektywa ErrorDocument zawierająca adres względny:

ErrorDocument 404 error-404.html

nie działa, zaś użycie względnego adresu stylów:

<link rel="stylesheet" type="text/css" href="error-404.css" />

spowoduje, że wyłącznie adresy URL dotyczące foldera głównego, czyli np.

http://localhost/a.html

będą sformatowane zgodnie z podanymi stylami. W przypadku strony pochodzącej z podfolderu, np.

http://localhost/a/b/c/d.html

style nie zostaną odnalezione.

Oczywiście strona obsługi błędu 404 może zostać wykonana w języku PHP. Utwórz plik error-404.php z dowolnym komunikatem po czym zmień dyrektywę ErrorDocument:

ErrorDocument 404 /error-404.php
 1   2   3   4   5   6   7   8