| <?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 --> |
| |
| <!-- |
| 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> |
| |