Podés crear un unico documento en php ó shtml, que maneje todos tus mensajes de error.
la variable que te va a permitir elaborar una respuesta es
$_SERVER['REDIRECT_STATUS'];
y la otra es $_SERVER['REQUEST_URI'] para saber que documento de solicito
fijate
Código PHP:
Ver original<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es-ar">
<head>
<meta charset="utf-8" />
<title>XHtml5</title>
<meta name="author" content="Guillermo Gianello" lang="es" />
</head>
<body>
<?php
$status = $_SERVER['REDIRECT_STATUS'];
403 => array('403 Prohibido', 'Está prohibido el acceso a este recurso.'), 401 => array('401 No autorizado', 'Necesita de credenciales válidas para acceder a este recurso.'), 404 => array('404 No encontrado', 'El documento o recurso solicitado no se encuentra disponible.'), 405 => array('405 Método no permitido', 'Método no permitido.'), 408 => array('408 Tiempo de espera agotado', 'Su navegador ha superado el tiempo de espera permitido por el servidor.'), 500 => array('500 Error Interno del Servidor', 'Se ha pruducido un error interno en el servidor.') );
$titulo = $codigos[$status][0];
$mensaje = $codigos[$status][1];
if ($titulo == false || strlen($status) != 3) { $mensaje= 'Código incorrecto.';
}
echo '<h1>' . $titulo . '</h1>' .
'<p>' . $mensaje . '</p>';
echo "<p>Recurso solicitado: " . $_SERVER['REQUEST_URI'] . "</p>";
?>
</body>
</html>
Bueno, ese sólo es un modelo sencillo. en realidad podés poner lo que quieras(crear logs, mandarlos a una base de datos, agregar más números de códigos, capturar más variables, etc), incluso personalizarla para que quede igual a tu página de inicio.
Cuidado con lo siguiente, si te aparece un error 500 y el error es por alguna falla en el propio .htaccess, obviamente te va a mostrar las páginas por defecto del server
Saludos