📄 custom-error.xml.es
字号:
<?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: 151405 --><!-- Copyright 2005 The Apache Software Foundation or its licensors, as applicable Licensed 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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -