| <?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: 1741841:1933190 (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> | |