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