|  | <?xml version="1.0" encoding="UTF-8" ?> | 
|  | <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> | 
|  | <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?> | 
|  | <!-- English Revision: 421100:558689 (outdated) --> | 
|  |  | 
|  | <!-- | 
|  | Licensed to the Apache Software Foundation (ASF) under one or more | 
|  | contributor license agreements.  See the NOTICE file distributed with | 
|  | this work for additional information regarding copyright ownership. | 
|  | The ASF licenses this file to You under the Apache License, Version 2.0 | 
|  | (the "License"); you may not use this file except in compliance with | 
|  | the License.  You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, software | 
|  | distributed under the License is distributed on an "AS IS" BASIS, | 
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | 
|  | implied.  See the License for the specific language governing | 
|  | permissions and limitations under the License.  --> | 
|  |  | 
|  | <manualpage metafile="custom-error.xml.meta"> | 
|  |  | 
|  | <title>Respuestas de error personalizadas</title> | 
|  |  | 
|  | <summary> | 
|  | <p>Apache ofrece la posibilidad de que los webmasters puedan | 
|  | configurar las respuestas que muestra el servidor Apache cuando se | 
|  | producen algunos errores o problemas.</p> | 
|  |  | 
|  | <p>Las respuestas personalizadas pueden definirse para activarse | 
|  | en caso de que el servidor detecte un error o problema.</p> | 
|  |  | 
|  | <p>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).</p> | 
|  | </summary> | 
|  |  | 
|  | <section id="behavior"> | 
|  | <title>Comportamiento</title> | 
|  |  | 
|  | <section> | 
|  | <title>Comportamiento anterior</title> | 
|  |  | 
|  | <p>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.</p> | 
|  | </section> | 
|  |  | 
|  | <section> | 
|  | <title>Comportamiento actual</title> | 
|  |  | 
|  | <p>Se puede hacer que el servidor siga uno de los siguientes | 
|  | comportamientos:</p> | 
|  |  | 
|  | <ol> | 
|  | <li>Desplegar un texto diferente, en lugar de los mensajes de | 
|  | la NCSA, o</li> | 
|  |  | 
|  | <li>redireccionar la petición a una URL local, o</li> | 
|  |  | 
|  | <li>redireccionar la petición a una URL externa.</li> | 
|  | </ol> | 
|  |  | 
|  | <p>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.</p> | 
|  |  | 
|  | <p>Para conseguir esto, Apache define ahora variables de entorno | 
|  | similares a las de los CGI:</p> | 
|  |  | 
|  | <example> | 
|  | REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, | 
|  | image/jpeg<br /> | 
|  | REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 | 
|  | 9000/712)<br /> | 
|  | REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br /> | 
|  | REDIRECT_QUERY_STRING=<br /> | 
|  | REDIRECT_REMOTE_ADDR=121.345.78.123<br /> | 
|  | REDIRECT_REMOTE_HOST=ooh.ahhh.com<br /> | 
|  | REDIRECT_SERVER_NAME=crash.bang.edu<br /> | 
|  | REDIRECT_SERVER_PORT=80<br /> | 
|  | REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br /> | 
|  | REDIRECT_URL=/cgi-bin/buggy.pl | 
|  | </example> | 
|  |  | 
|  | <p>Tenga en cuenta el prefijo <code>REDIRECT_</code>.</p> | 
|  |  | 
|  | <p>Al menos <code>REDIRECT_URL</code> y | 
|  | <code>REDIRECT_QUERY_STRING</code> 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. <strong>Ninguna</strong> de estas variables | 
|  | se creará si en la directiva <directive | 
|  | module="core">ErrorDocument</directive> ha especificado una | 
|  | redirección <em>externa</em> (cualquier cosa que empiece | 
|  | por un nombre de esquema del tipo <code>http:</code>, incluso si | 
|  | se refiere al mismo servidor).</p> | 
|  | </section> | 
|  | </section> | 
|  |  | 
|  | <section id="configuration"> | 
|  | <title>Configuración</title> | 
|  |  | 
|  | <p>El uso de <directive module="core">ErrorDocument</directive> | 
|  | está activado para los ficheros .htaccess cuando <directive | 
|  | module="core">AllowOverride</directive> tiene el valor | 
|  | adecuado.</p> | 
|  |  | 
|  | <p>Aquí hay algunos ejemplos más...</p> | 
|  |  | 
|  | <example> | 
|  | ErrorDocument 500 /cgi-bin/crash-recover <br /> | 
|  | ErrorDocument 500 "Sorry, our script crashed. Oh dear" <br /> | 
|  | ErrorDocument 500 http://xxx/ <br /> | 
|  | ErrorDocument 404 /Lame_excuses/not_found.html <br /> | 
|  | ErrorDocument 401 /Subscription/how_to_subscribe.html | 
|  | </example> | 
|  |  | 
|  | <p>La sintaxis es,</p> | 
|  |  | 
|  | <example> | 
|  | ErrorDocument <3-digit-code> <action> | 
|  | </example> | 
|  |  | 
|  | <p>donde action puede ser,</p> | 
|  |  | 
|  | <ol> | 
|  | <li>Texto a mostrar. Ponga antes del texto que quiere que se | 
|  | muestre unas comillas ("). Lo que sea que siga a las comillas se | 
|  | mostrará. <em>Nota: las comillas (") no se | 
|  | muestran.</em></li> | 
|  |  | 
|  | <li>Una URL local a la que se redireccionará la | 
|  | petición.</li> | 
|  |  | 
|  | <li>Una URL externa a la que se redireccionará la | 
|  | petición.</li> | 
|  | </ol> | 
|  | </section> | 
|  |  | 
|  | <section id="custom"> | 
|  | <title>Mesajes de error personalizados y redirecciones</title> | 
|  |  | 
|  | <p>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.</p> | 
|  |  | 
|  | <section> | 
|  | <title>Antiguo comportamiento</title> | 
|  |  | 
|  | <p>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.</p> | 
|  | </section> | 
|  |  | 
|  | <section> | 
|  | <title>Nuevo comportamiento</title> | 
|  |  | 
|  | <p>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 <code>REDIRECT_</code>. | 
|  | Las variables de entorno <code>REDIRECT_</code> 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 <code>REDIRECT_</code>, por | 
|  | ejemplo, <code>HTTP_USER_AGENT</code> pasa a ser | 
|  | <code>REDIRECT_HTTP_USER_AGENT</code>. Además, para esas | 
|  | nuevas variables, Apache definirá <code>REDIRECT_URL</code> | 
|  | y <code>REDIRECT_STATUS</code> 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.</p> | 
|  |  | 
|  | <p>Si ErrorDocument especifica una redirección local a un | 
|  | script CGI, el script debe incluir una campo de cabeceraa | 
|  | "<code>Status:</code>" 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:</p> | 
|  |  | 
|  | <example> | 
|  | ... <br /> | 
|  | print  "Content-type: text/html\n"; <br /> | 
|  | printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; <br /> | 
|  | ... | 
|  | </example> | 
|  |  | 
|  | <p>Si el script tiene como fin tratar una determinada | 
|  | condición de error, por ejemplo | 
|  | <code>404 Not Found</code>, se pueden usar los | 
|  | códigos de error y textos específicos en su lugar.</p> | 
|  |  | 
|  | <p>Tenga en cuenta que el script <em>debe</em> incluir un campo | 
|  | de cabecera <code>Status:</code> apropiado (como | 
|  | <code>302 Found</code>), si la respuesta contiene un campo de | 
|  | cabecera <code>Location:</code> (para poder enviar una | 
|  | redirección que se interprete en el cliente). De otra | 
|  | manera, la cabecera | 
|  | <code>Location:</code> puede que no tenga efecto.</p> | 
|  | </section> | 
|  | </section> | 
|  | </manualpage> | 
|  |  |