<-
Apache > Servidor HTTP > Documentaci�n > Versi�n 2.0

Respuestas de error personalizadas

Idiomas disponibles:  en  |  es  |  fr  |  ja  |  ko 

Apache ofrece la posibilidad de que los webmasters puedan configurar las respuestas que muestra el servidor Apache cuando se producen algunos errores o problemas.

Las respuestas personalizadas pueden definirse para activarse en caso de que el servidor detecte un error o problema.

Si un script termina de forma anormal y se produce una respuesta "500 Server Error", esta respuesta puede ser sustituida por otro texto de su elecci�n o por una redirecci�n a otra URL (local o externa).

top

Comportamiento

Comportamiento anterior

NCSA httpd 1.3 devolv�a mensajes antiguos del error o problema encontrado que con frecuencia no ten�an significado alguno para el usuario, y que no inclu�an en los logs informaci�n que diera pistas sobre las causas de lo sucedido.

Comportamiento actual

Se puede hacer que el servidor siga uno de los siguientes comportamientos:

  1. Desplegar un texto diferente, en lugar de los mensajes de la NCSA, o
  2. redireccionar la petici�n a una URL local, o
  3. redireccionar la petici�n a una URL externa.

Redireccionar a otra URL puede resultar de utilidad, pero solo si con ello se puede tambi�n pasar alguna informaci�n que pueda explicar el error o problema y/o registrarlo en el log correspondiente m�s claramente.

Para conseguir esto, Apache define ahora variables de entorno similares a las de los CGI:

REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, image/jpeg
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 9000/712)
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=ooh.ahhh.com
REDIRECT_SERVER_NAME=crash.bang.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
REDIRECT_URL=/cgi-bin/buggy.pl

Tenga en cuenta el prefijo REDIRECT_.

Al menos REDIRECT_URL y REDIRECT_QUERY_STRING se pasar�n a la nueva URL (asumiendo que es un cgi-script o un cgi-include). Las otras variables existir�n solo si exist�an antes de aparecer el error o problema. Ninguna de estas variables se crear� si en la directiva ErrorDocument ha especificado una redirecci�n externa (cualquier cosa que empiece por un nombre de esquema del tipo http:, incluso si se refiere al mismo servidor).

top

Configuraci�n

El uso de ErrorDocument est� activado para los ficheros .htaccess cuando AllowOverride tiene el valor adecuado.

Aqu� hay algunos ejemplos m�s...

ErrorDocument 500 /cgi-bin/crash-recover
ErrorDocument 500 "Sorry, our script crashed. Oh dear"
ErrorDocument 500 http://xxx/
ErrorDocument 404 /Lame_excuses/not_found.html
ErrorDocument 401 /Subscription/how_to_subscribe.html

La sintaxis es,

ErrorDocument <3-digit-code> <action>

donde action puede ser,

  1. Texto a mostrar. Ponga antes del texto que quiere que se muestre unas comillas ("). Lo que sea que siga a las comillas se mostrar�. Nota: las comillas (") no se muestran.
  2. Una URL local a la que se redireccionar� la petici�n.
  3. Una URL externa a la que se redireccionar� la petici�n.
top

Mesajes de error personalizados y redirecciones

El comportamiento de Apache en cuanto a las redirecciones ha cambiado para que puedan usarse m�s variables de entorno con los script/server-include.

Antiguo comportamiento

Las variables CGI est�ndar estaban disponibles para el script al que se hac�a la redirecci�n. No se inclu�a ninguna indicaci�n sobre la precedencia de la redirecci�n.

Nuevo comportamiento

Un nuevo grupo de variables de entorno se inicializa para que las use el script al que ha sido redireccionado. Cada nueva variable tendr� el prefijo REDIRECT_. Las variables de entorno REDIRECT_ se crean a partir de de las variables de entorno CGI que existen antes de la redirecci�n, se les cambia el nombre a�adi�ndoles el prefijo REDIRECT_, por ejemplo, HTTP_USER_AGENT pasa a ser REDIRECT_HTTP_USER_AGENT. Adem�s, para esas nuevas variables, Apache definir� REDIRECT_URL y REDIRECT_STATUS para ayudar al script a seguir su origen. Tanto la URL original como la URL a la que es redirigida la petici�n pueden almacenarse en los logs de acceso.

Si ErrorDocument especifica una redirecci�n local a un script CGI, el script debe incluir una campo de cabeceraa "Status:" en el resultado final para asegurar que es posible hacer llegar al cliente de vuelta la condici�n de error que lo provoc�. Por ejemplo, un script en Perl para usar con ErrorDocument podr�a incluir lo siguiente:

...
print "Content-type: text/html\n";
printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
...

Si el script tiene como fin tratar una determinada condici�n de error, por ejemplo 404 Not Found, se pueden usar los c�digos de error y textos espec�ficos en su lugar.

Tenga en cuenta que el script debe incluir un campo de cabecera Status: apropiado (como 302 Found), si la respuesta contiene un campo de cabecera Location: (para poder enviar una redirecci�n que se interprete en el cliente). De otra manera, la cabecera Location: puede que no tenga efecto.

Idiomas disponibles:  en  |  es  |  fr  |  ja  |  ko