Main Content

An unhelpful error message from Apache httpd

Archive - Originally posted on "The Horse's Mouth" - 2006-03-30 19:13:18 - Graham Ellis

"Your program doesn't work". Such reports cause technical support staff to be pulling their hair out. "In what way did it fail" they'll ask, hoping for some clue that can point them towards their caller's problem.

So why does on earth does an Apache httpd web server report:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.


whenever anything goes wrong; it's roughly saying "That didn't work" !!

It's intentional! ... Httpd gives a generic message for all failures that may relate to scripts its running and how it's configured exactly so that the web site visitor who gets the message won't be able to work out what's going wrong and won't be able to glean internal / structure information that can help him find any weaknesses there may be.

The web developer who looks after the web server, though, will be able to look in the log files and find a better message - such as:
[Thu Mar 30 20:02:44 2006] [error] [client 192.168.200.66] Undefined subroutine &main::loaltime called at /home/vweb/cgi-bin/t500.pl line 3.
which tells me that the Perl programmer who wrote the script wrote a call to a function loaltime rather than one called localtime ... easily fixed!

If you want to change the less than helpful error message / error response page to your own less that helpful error page, you can use and ErrorDocument directive in your httpd.conf file, of in a .htaccess file if you want to do it on a per-directory basis. Example:
ErrorDocument 500 "/resources/failed500.html"
where the file failed500.html if your error page