diff options
author | André Malo <nd@apache.org> | 2005-06-12 09:09:59 +0000 |
---|---|---|
committer | André Malo <nd@apache.org> | 2005-06-12 09:09:59 +0000 |
commit | 3179994bd727b840bdd17fb9aa9dce81a34be2e5 (patch) | |
tree | 3857e4632cbdf51677b4a29d234eaba4b245d0f3 | |
parent | fb7511b595bc4318769d6ad8a8400f58484899eb (diff) | |
download | httpd-3179994bd727b840bdd17fb9aa9dce81a34be2e5.tar.gz |
mod_version_for_2.0.x branch:
* Merge 179253 to 190230 from branches/2.0.x
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/mod_version_for_2.0.x@190231 13f79535-47bb-0310-9956-ffa450edef68
32 files changed, 2562 insertions, 36 deletions
@@ -7,6 +7,14 @@ Changes with Apache 2.0.55 accompanying ap_version_t structure (minor MMN bump). [André Malo] + *) SECURITY: CAN-2005-1268 (cve.mitre.org) + mod_ssl: Fix off-by-one overflow whilst printing CRL information + at "LogLevel debug" which could be triggered if configured + to use a "malicious" CRL. PR 35081. [Marc Stern <mstern csc.com>] + + *) mod_userdir: Fix possible memory corruption issue. PR 34588. + [David Leonard <dleonard vintela.com>] + *) worker mpm: don't take down the whole server for a transient thread creation failure. PR 34514 [Greg Ames] @@ -235,12 +235,6 @@ PATCHES TO BACKPORT FROM TRUNK: PR: 34452 +1: jorton - *) mod_userdir: fix to palloc(sizeof struct) not palloc(sizeof pointer) - http://svn.apache.org/viewcvs?rev=165151&view=rev - PR: 34588 - +1: jorton, bnicholes, trawick (isn't it worth a CHANGES entry for a storage - corruption fix?) - *) fix z/OS annoyance with pathname on debug messages in error log http://svn.apache.org/viewcvs?rev=178299&view=rev +1: trawick @@ -255,8 +249,35 @@ PATCHES TO BACKPORT FROM TRUNK: *) Support the suppress-error-charset setting, as with Apache 1.3.x. PR 31274. (current docs say it works with Apache from 2.0.40 ;) ) http://svn.apache.org/viewcvs?rev=170354&view=rev + +1: trawick, jorton + + *) Downgrade the log level of a worker MPM apr_proc_mutex_foo error + message when it occurs during restart (as we already do for a couple + of other calls). + http://svn.apache.org/viewcvs?rev=179317&view=rev + +1: trawick, jorton + + *) proxy FTP: Fix confusion about globbing characters which could lead + to getting a directory listing when a file was requested. PR 34512. + 2.1 patch was http://svn.apache.org/viewcvs?rev=179704&view=rev + 2.0 version: http://people.apache.org/~trawick/179704-20.txt + +1: trawick, jorton + + *) mod_mime_magic: Handle CRLF-format magic files so that it works with + the default installation on Windows. + http://svn.apache.org/viewcvs?rev=179622&view=rev +1: trawick + *) mod_cache: Fix handling of 'Vary: *". PR 16125. + Trunk: r180341 + 2.0.x Patch: http://issues.apache.org/bugzilla/attachment.cgi?id=15297 + +1: pquerna + + *) mod_ssl: Fix buffering in SSL output filter. + http://svn.apache.org/viewcvs?rev=189971&view=rev + PR: 35279 + +1: jorton + PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON: *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap. diff --git a/docs/conf/httpd-std.conf.in b/docs/conf/httpd-std.conf.in index 2c15753b90..e68a76dad9 100644 --- a/docs/conf/httpd-std.conf.in +++ b/docs/conf/httpd-std.conf.in @@ -962,6 +962,7 @@ BrowserMatch "JDK/1\.0" force-response-1.0 # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV. # BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully +BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs" redirect-carefully diff --git a/docs/conf/httpd-win.conf b/docs/conf/httpd-win.conf index e22cd9dbf5..aee7dd346b 100644 --- a/docs/conf/httpd-win.conf +++ b/docs/conf/httpd-win.conf @@ -881,6 +881,7 @@ BrowserMatch "JDK/1\.0" force-response-1.0 # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV. # BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully +BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs" redirect-carefully diff --git a/docs/manual/dns-caveats.html b/docs/manual/dns-caveats.html index 8c9d7fda93..9588aa8b73 100644 --- a/docs/manual/dns-caveats.html +++ b/docs/manual/dns-caveats.html @@ -2,6 +2,10 @@ URI: dns-caveats.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: dns-caveats.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + URI: dns-caveats.html.fr Content-Language: fr Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/dns-caveats.html.en b/docs/manual/dns-caveats.html.en index 8135a272fb..7678172ee0 100644 --- a/docs/manual/dns-caveats.html.en +++ b/docs/manual/dns-caveats.html.en @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Issues Regarding DNS and Apache</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="./en/dns-caveats.html" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> @@ -232,6 +233,7 @@ </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="./en/dns-caveats.html" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> diff --git a/docs/manual/dns-caveats.html.es b/docs/manual/dns-caveats.html.es new file mode 100644 index 0000000000..ed28bf68b3 --- /dev/null +++ b/docs/manual/dns-caveats.html.es @@ -0,0 +1,266 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Asuntos relacionados con Apache y las DNS - Servidor HTTP Apache</title> +<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> +<link href="./images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p> +<p class="apache">Versión 2.0 del Servidor HTTP Apache</p> +<img alt="" src="./images/feather.gif" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs-project/">Documentación</a> > <a href="./">Versión 2.0</a></div><div id="page-content"><div id="preamble"><h1>Asuntos relacionados con Apache y las DNS</h1> +<div class="toplang"> +<p><span>Idiomas disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" title="Español"> es </a> | +<a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div> + + <p>Este documento puede resumirse en la siguiente frase: no + configure Apache de manera que el análisis sintáctico de + los ficheros de configuración tenga que confiar en + resoluciones DNS. Si Apache necesita de resoluciones DNS para + analizar los ficheros de configuración, entonces su servidor + puede no funcionar correctamente (por ejemplo, podría no + iniciarse), o sufrir ataques de denegación o robo de servicio + (incluyendo que otas web puedan "robar" peticiones de otras + web).</p> + </div> +<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#example">Un ejemplo sencillo</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#denial">Denegación de servicio</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#main">La dirección del "servidor principal"</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#tips">Consejos para evitar problemas</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#appendix">Apéndice: Líneas de evolución de Apache</a></li> +</ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="example" id="example">Un ejemplo sencillo</a></h2> + + + <div class="example"><p><code> + <VirtualHost www.abc.com> <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> + </code></p></div> + + <p>Para que Apache funcione correctamente, es imprescindible + conocer dos aspectos sobre cada host virtual: el valor de la + directiva <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> y al + menos una dirección IP en la que servidor escuchará y + responderá a las peticiones que se produzcan. El ejemplo + mostrado arriba no incluye la direccion IP, de manera que Apache + tiene que usar una resolución DNS para encontrar la + dirección IP correspondiente a <code>www.abc.com</code>. Si + por alguna razón la resolución DNS no está + disponible en el momento en que su servidor está analizando + sintánticamente su fichero de configuración, entonces + este host virtual <strong>no se configurará</strong> y no + será capaz de responder a ninguna de las peticiones que se + hagan a ese host virtual (en las versiones de Apache anteriores a + la 1.2 el servidor ni siquiera se iniciaba).</p> + + <p>Suponga que <code>www.abc.com</code> tiene como dirección + IP la 10.0.0.1. Considere la siguiente configuración:</p> + + <div class="example"><p><code> + <VirtualHost 10.0.0.1> <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> + </code></p></div> + + <p>Ahora Apache necesita hacer una búsqueda DNS inversa para + encontrar el <code>ServerName</code> de este host virtual. Si esta + búsqueda inversa falla entonces el host virtual se + desactivará parcialmente (en las versiones de Apache + anteriores a la 1.2 el servidor ni siquiera se iniciaba). Si el + host virtual está basado en el nombre, entonces se + desactivará completamente, pero si está basado en la + dirección IP, entonces funcionará para la mayor parte de + las cosas. Sin embargo, si Apache tiene que generar en algún + momento una URL completa que incluya el nombre del servidor, no + será capaz de generar una URL válida.</p> + + <p>Aquí tiene una forma de evitar ambos problemas:</p> + + <div class="example"><p><code> + <VirtualHost 10.0.0.1> <br /> + ServerName www.abc.com <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> + </code></p></div> + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="denial" id="denial">Denegación de servicio</a></h2> + + + <p>Hay (al menos) dos formas de que ocurra una denegación de + servicio. Si está ejecutando una versión de Apache + anterior a la 1.2, entonces su servidor no se iniciará si una + de las dos búsquedas de DNS mencionadas arriba falla para + cualquiera de sus hosts virtuales. En algunos casos estas + búsquedas DNS puede que no estén bajo su control; por + ejemplo, si <code>abc.com</code> es uno de sus clientes y ellos + controlan su propia DNS, pueden forzar a su servidor (pre-1.2) a + fallar al iniciarse simplemente borrando el registro + <code>www.abc.com</code>.</p> + + <p>Otra formas pueden ser bastante más complicadas. Fíjese + en esta configuración:</p> + + <div class="example"><p><code> + <VirtualHost www.abc.com> <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> <br /> + <br /> + <VirtualHost www.def.com> <br /> + ServerAdmin webguy@def.com <br /> + DocumentRoot /www/def <br /> + </VirtualHost> + </code></p></div> + + <p>Suponga que ha asignado la dirección 10.0.0.1 a + <code>www.abc.com</code> y 10.0.0.2 a + <code>www.def.com</code>. Todavía más, suponga que + <code>def.com</code> tiene el control de sus propias DNS. Con esta + configuración ha puesto <code>def.com</code> en una + posición en la que puede robar todo el trafico destinado a + <code>abc.com</code>. Para conseguirlo, todo lo que tiene que + hacer es asignarle a <code>www.def.com</code> la dirección + 10.0.0.1. Como ellos controlan sus propias DNS no puede evitar que + apunten el registro <code>www.def.com</code> a donde quieran.</p> + + <p>Las peticiones dirigidas a la dirección 10.0.0.1 + (incluídas aquellas en las los usuarios escriben URLs de tipo + <code>http://www.abc.com/whatever</code>) serán todas + servidas por el host virtual <code>def.com</code>. Comprender por + qué ocurre esto requiere una discusión más profunda + acerca de como Apache asigna las peticiones que recibe a los hosts + virtuales que las servirán. Puede consultar <a href="vhosts/details.html">aquí</a> un documento que trata el + tema.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="main" id="main">La dirección del "servidor principal"</a></h2> + + + <p>El que Apache soporte <a href="vhosts/name-based.html">hosting + virtual basado en nombres</a> desde la version 1.1 hace que sea + necesario que el servidor conozca la dirección (o + direcciones) IP del host que <code class="program"><a href="./programs/httpd.html">httpd</a></code> está + ejecutando. Para tener acceso a esta dirección puede usar la + directiva global <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> + (si está presente) o llamar a la función de C + <code>gethostname</code> (la cuál debe devolver el mismo + resultado que devuelve ejecutar por línea de comandos + "hostname"). Entonces se produce una búsqueda DNS de esa + dirección. Actualmente, no hay forma de evitar que se + produzca esta búsqueda.</p> + + <p>Si teme que esta búsqueda pueda fallar porque su servidor + DNS está desactivado entonces puede insertar el nombre de + host en <code>/etc/hosts</code> (donde probablemente ya lo tiene + para que la máquina pueda arrancar + correctamente). Asegúrese de que su máquina está + configurada para usar <code>/etc/hosts</code> en caso de que esa + búsqueda DNS falle. En función del sistema operativo que + use, puede conseguir esto editando <code>/etc/resolv.conf</code>, + o puede que <code>/etc/nsswitch.conf</code>.</p> + + <p>Si su servidor no tiene que ejecutar búsquedas DNS por + ninguna otra razón entonces considere ejecutar Apache + especificando el valor "local" en la variable de entorno + <code>HOSTRESORDER</code>. Todo esto depende del sistema operativo + y de las librerías de resolución que use. Esto + también afecta a los CGIs a menos que use + <code class="module"><a href="./mod/mod_env.html">mod_env</a></code> para controlar el entorno. Por favor, + consulte las páginas de ayuda o la sección de Preguntas + Más Frecuentes de su sistema operativo.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="tips" id="tips">Consejos para evitar problemas</a></h2> + + + <ul> + <li> + use direcciones IP en + <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code> + </li> + + <li> + use direcciones IP en + <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> + </li> + + <li> + asegúrese de que todos los host virtuales tienen + explícitamente especificados una directiva <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> + </li> + + <li>cree un servidor <code><VirtualHost _default_:*></code> + que no tenga páginas que servir.</li> + </ul> + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="appendix" id="appendix">Apéndice: Líneas de evolución de Apache</a></h2> + + + <p>La situación actual respecto a las búsquedas DNS + está lejos de ser la deseable. En Apache 1.2 se intentó + hacer que el servidor al menos se iniciara a pesar de que fallara + la búsqueda DNS, pero puede que esa no sea la mejor + solución. En cualquier caso, requerir el uso de direcciones + IP explícitas en los ficheros de configuración no es ni + mucho menos una solución deseable con la situación + actual de Internet, donde la renumeración es una + necesidad.</p> + + <p>Una posible solución a los ataques de robo de servicio + descritos más arriba, sería hacer una búsqueda DNS + inversa de la dirección IP devuelta por la búsqueda + previa y comparar los dos nombres -- en caso de que sean + diferentes, el host virtual se desactivaría. Esto + requeriría configurar correctamente DNS inverso (una tarea + con la que suelen estar familiarizados la mayoría de los + administradores de sistemas).</p> + + <p>En cualquier caso, no parece posible iniciar en las condiciones + apropiadas un servidor web alojado virtualmente cuando DNS ha + fallado a no ser que se usen direcciones IP. Soluciones parciales + tales como desactivar partes de la configuración podrían + ser incluso peores que no iniciar el servidor en absoluto, + dependiendo de las funciones que se espera que realice el servidor + web.</p> + + <p>Como HTTP/1.1 está ampliamente extendido y los navegadores + y los servidores proxy empiezan a usar la cabecera + <code>Host</code>, en el futuro será posible evitar el uso de + hosting virtual basado en direcciones IP completamente. En ese + caso, un servidor web no tiene ninguna necesidad de hacer + búsquedas de DNS durante la configuración. Sin embargo, + en Marzo de 1997 esas funcionalidades no estaban lo + suficientemente implantadas como para ponerlas en uso en + servidores web que realizaban tareas de importancia + crítica.</p> + </div></div> +<div class="bottomlang"> +<p><span>Idiomas disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" title="Español"> es </a> | +<a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div><div id="footer"> +<p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p></div> +</body></html>
\ No newline at end of file diff --git a/docs/manual/dns-caveats.html.fr b/docs/manual/dns-caveats.html.fr index ec18ef3b4c..6ff42b956a 100644 --- a/docs/manual/dns-caveats.html.fr +++ b/docs/manual/dns-caveats.html.fr @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Problèmes DNS avec Apache</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/dns-caveats.html" title="Français"> fr </a> | <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> @@ -242,6 +243,7 @@ </div></div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/dns-caveats.html" title="Français"> fr </a> | <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> diff --git a/docs/manual/dns-caveats.html.ja.euc-jp b/docs/manual/dns-caveats.html.ja.euc-jp index 1fe7c55fc6..0ac3ae92a9 100644 --- a/docs/manual/dns-caveats.html.ja.euc-jp +++ b/docs/manual/dns-caveats.html.ja.euc-jp @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP ¥µ¡¼¥Ð</a> > <a href="http://httpd.apache.org/docs-project/">¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó</a> > <a href="./">¥Ð¡¼¥¸¥ç¥ó 2.0</a></div><div id="page-content"><div id="preamble"><h1>DNS ¤È Apache ¤Ë¤Þ¤Ä¤ï¤ëÃí°Õ»ö¹à</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Espa«Ðol"> es </a> | <a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Fran«®ais"> fr </a> | <a href="./ja/dns-caveats.html" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> @@ -236,6 +237,7 @@ </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Espa«Ðol"> es </a> | <a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Fran«®ais"> fr </a> | <a href="./ja/dns-caveats.html" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> diff --git a/docs/manual/dns-caveats.html.ko.euc-kr b/docs/manual/dns-caveats.html.ko.euc-kr index 46bc29f67f..a58855cc44 100644 --- a/docs/manual/dns-caveats.html.ko.euc-kr +++ b/docs/manual/dns-caveats.html.ko.euc-kr @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>DNS¿Í ¾ÆÆÄÄ¡¿Í °ü·ÃµÈ »çÇ×</h1> <div class="toplang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" title="Korean"> ko </a></p> @@ -216,6 +217,7 @@ </div></div> <div class="bottomlang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/dns-caveats.html" title="Korean"> ko </a></p> diff --git a/docs/manual/dns-caveats.xml.es b/docs/manual/dns-caveats.xml.es new file mode 100644 index 0000000000..d086884522 --- /dev/null +++ b/docs/manual/dns-caveats.xml.es @@ -0,0 +1,253 @@ +<?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 2002-2005 The Apache Software Foundation or it 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="dns-caveats.xml.meta"> + + <title>Asuntos relacionados con Apache y las DNS</title> + + <summary> + <p>Este documento puede resumirse en la siguiente frase: no + configure Apache de manera que el análisis sintáctico de + los ficheros de configuración tenga que confiar en + resoluciones DNS. Si Apache necesita de resoluciones DNS para + analizar los ficheros de configuración, entonces su servidor + puede no funcionar correctamente (por ejemplo, podría no + iniciarse), o sufrir ataques de denegación o robo de servicio + (incluyendo que otas web puedan "robar" peticiones de otras + web).</p> + </summary> + + <section id="example"> + <title>Un ejemplo sencillo</title> + + <example> + <VirtualHost www.abc.com> <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> + </example> + + <p>Para que Apache funcione correctamente, es imprescindible + conocer dos aspectos sobre cada host virtual: el valor de la + directiva <directive module="core">ServerName</directive> y al + menos una dirección IP en la que servidor escuchará y + responderá a las peticiones que se produzcan. El ejemplo + mostrado arriba no incluye la direccion IP, de manera que Apache + tiene que usar una resolución DNS para encontrar la + dirección IP correspondiente a <code>www.abc.com</code>. Si + por alguna razón la resolución DNS no está + disponible en el momento en que su servidor está analizando + sintánticamente su fichero de configuración, entonces + este host virtual <strong>no se configurará</strong> y no + será capaz de responder a ninguna de las peticiones que se + hagan a ese host virtual (en las versiones de Apache anteriores a + la 1.2 el servidor ni siquiera se iniciaba).</p> + + <p>Suponga que <code>www.abc.com</code> tiene como dirección + IP la 10.0.0.1. Considere la siguiente configuración:</p> + + <example> + <VirtualHost 10.0.0.1> <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> + </example> + + <p>Ahora Apache necesita hacer una búsqueda DNS inversa para + encontrar el <code>ServerName</code> de este host virtual. Si esta + búsqueda inversa falla entonces el host virtual se + desactivará parcialmente (en las versiones de Apache + anteriores a la 1.2 el servidor ni siquiera se iniciaba). Si el + host virtual está basado en el nombre, entonces se + desactivará completamente, pero si está basado en la + dirección IP, entonces funcionará para la mayor parte de + las cosas. Sin embargo, si Apache tiene que generar en algún + momento una URL completa que incluya el nombre del servidor, no + será capaz de generar una URL válida.</p> + + <p>Aquí tiene una forma de evitar ambos problemas:</p> + + <example> + <VirtualHost 10.0.0.1> <br /> + ServerName www.abc.com <br /> + ServerAdmin webgirl@abc.com <br /> + DocumentRoot /www/abc <br /> + </VirtualHost> + </example> + </section> + + <section id="denial"> + <title>Denegación de servicio</title> + + <p>Hay (al menos) dos formas de que ocurra una denegación de + servicio. Si está ejecutando una versión de Apache + anterior a la 1.2, entonces su servidor no se iniciará si una + de las dos búsquedas de DNS mencionadas arriba falla para + cualquiera de sus hosts virtuales. En algunos casos estas + búsquedas DNS puede que no estén bajo su control; por + ejemplo, si <code>abc.com</code> es uno de sus clientes y ellos + controlan su propia DNS, pueden forzar a su servidor (pre-1.2) a + fallar al iniciarse simplemente borrando el registro + <code>www.abc.com</code>.</p> + + <p>Otra formas pueden ser bastante más complicadas. Fíjese + en esta configuración:</p> + + <example> + <VirtualHost www.abc.com> <br /> +   ServerAdmin webgirl@abc.com <br /> +   DocumentRoot /www/abc <br /> + </VirtualHost> <br /> + <br /> + <VirtualHost www.def.com> <br /> +   ServerAdmin webguy@def.com <br /> +   DocumentRoot /www/def <br /> + </VirtualHost> + </example> + + <p>Suponga que ha asignado la dirección 10.0.0.1 a + <code>www.abc.com</code> y 10.0.0.2 a + <code>www.def.com</code>. Todavía más, suponga que + <code>def.com</code> tiene el control de sus propias DNS. Con esta + configuración ha puesto <code>def.com</code> en una + posición en la que puede robar todo el trafico destinado a + <code>abc.com</code>. Para conseguirlo, todo lo que tiene que + hacer es asignarle a <code>www.def.com</code> la dirección + 10.0.0.1. Como ellos controlan sus propias DNS no puede evitar que + apunten el registro <code>www.def.com</code> a donde quieran.</p> + + <p>Las peticiones dirigidas a la dirección 10.0.0.1 + (incluídas aquellas en las los usuarios escriben URLs de tipo + <code>http://www.abc.com/whatever</code>) serán todas + servidas por el host virtual <code>def.com</code>. Comprender por + qué ocurre esto requiere una discusión más profunda + acerca de como Apache asigna las peticiones que recibe a los hosts + virtuales que las servirán. Puede consultar <a + href="vhosts/details.html">aquí</a> un documento que trata el + tema.</p> + </section> + + <section id="main"> + <title>La dirección del "servidor principal"</title> + + <p>El que Apache soporte <a href="vhosts/name-based.html">hosting + virtual basado en nombres</a> desde la version 1.1 hace que sea + necesario que el servidor conozca la dirección (o + direcciones) IP del host que <program>httpd</program> está + ejecutando. Para tener acceso a esta dirección puede usar la + directiva global <directive module="core">ServerName</directive> + (si está presente) o llamar a la función de C + <code>gethostname</code> (la cuál debe devolver el mismo + resultado que devuelve ejecutar por línea de comandos + "hostname"). Entonces se produce una búsqueda DNS de esa + dirección. Actualmente, no hay forma de evitar que se + produzca esta búsqueda.</p> + + <p>Si teme que esta búsqueda pueda fallar porque su servidor + DNS está desactivado entonces puede insertar el nombre de + host en <code>/etc/hosts</code> (donde probablemente ya lo tiene + para que la máquina pueda arrancar + correctamente). Asegúrese de que su máquina está + configurada para usar <code>/etc/hosts</code> en caso de que esa + búsqueda DNS falle. En función del sistema operativo que + use, puede conseguir esto editando <code>/etc/resolv.conf</code>, + o puede que <code>/etc/nsswitch.conf</code>.</p> + + <p>Si su servidor no tiene que ejecutar búsquedas DNS por + ninguna otra razón entonces considere ejecutar Apache + especificando el valor "local" en la variable de entorno + <code>HOSTRESORDER</code>. Todo esto depende del sistema operativo + y de las librerías de resolución que use. Esto + también afecta a los CGIs a menos que use + <module>mod_env</module> para controlar el entorno. Por favor, + consulte las páginas de ayuda o la sección de Preguntas + Más Frecuentes de su sistema operativo.</p> + </section> + + <section id="tips"> + <title>Consejos para evitar problemas</title> + + <ul> + <li> + use direcciones IP en + <directive module="core">VirtualHost</directive> + </li> + + <li> + use direcciones IP en + <directive module="mpm_common">Listen</directive> + </li> + + <li> + asegúrese de que todos los host virtuales tienen + explícitamente especificados una directiva <directive + module="core">ServerName</directive> + </li> + + <li>cree un servidor <code><VirtualHost _default_:*></code> + que no tenga páginas que servir.</li> + </ul> + </section> + + <section id="appendix"> + <title>Apéndice: Líneas de evolución de Apache</title> + + <p>La situación actual respecto a las búsquedas DNS + está lejos de ser la deseable. En Apache 1.2 se intentó + hacer que el servidor al menos se iniciara a pesar de que fallara + la búsqueda DNS, pero puede que esa no sea la mejor + solución. En cualquier caso, requerir el uso de direcciones + IP explícitas en los ficheros de configuración no es ni + mucho menos una solución deseable con la situación + actual de Internet, donde la renumeración es una + necesidad.</p> + + <p>Una posible solución a los ataques de robo de servicio + descritos más arriba, sería hacer una búsqueda DNS + inversa de la dirección IP devuelta por la búsqueda + previa y comparar los dos nombres -- en caso de que sean + diferentes, el host virtual se desactivaría. Esto + requeriría configurar correctamente DNS inverso (una tarea + con la que suelen estar familiarizados la mayoría de los + administradores de sistemas).</p> + + <p>En cualquier caso, no parece posible iniciar en las condiciones + apropiadas un servidor web alojado virtualmente cuando DNS ha + fallado a no ser que se usen direcciones IP. Soluciones parciales + tales como desactivar partes de la configuración podrían + ser incluso peores que no iniciar el servidor en absoluto, + dependiendo de las funciones que se espera que realice el servidor + web.</p> + + <p>Como HTTP/1.1 está ampliamente extendido y los navegadores + y los servidores proxy empiezan a usar la cabecera + <code>Host</code>, en el futuro será posible evitar el uso de + hosting virtual basado en direcciones IP completamente. En ese + caso, un servidor web no tiene ninguna necesidad de hacer + búsquedas de DNS durante la configuración. Sin embargo, + en Marzo de 1997 esas funcionalidades no estaban lo + suficientemente implantadas como para ponerlas en uso en + servidores web que realizaban tareas de importancia + crítica.</p> + </section> +</manualpage> + diff --git a/docs/manual/dns-caveats.xml.meta b/docs/manual/dns-caveats.xml.meta index b8be670062..326bcc6996 100644 --- a/docs/manual/dns-caveats.xml.meta +++ b/docs/manual/dns-caveats.xml.meta @@ -7,6 +7,7 @@ <variants> <variant>en</variant> + <variant>es</variant> <variant>fr</variant> <variant outdated="yes">ja</variant> <variant outdated="yes">ko</variant> diff --git a/docs/manual/env.html b/docs/manual/env.html index 5bc9a72f06..bac55adb6d 100644 --- a/docs/manual/env.html +++ b/docs/manual/env.html @@ -2,6 +2,10 @@ URI: env.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: env.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + URI: env.html.fr Content-Language: fr Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/env.html.en b/docs/manual/env.html.en index f17560e596..00930fc98d 100644 --- a/docs/manual/env.html.en +++ b/docs/manual/env.html.en @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Environment Variables in Apache</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="./en/env.html" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/env.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> @@ -390,6 +391,7 @@ SetEnvIf Referer "^$" local_referal </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="./en/env.html" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/env.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> diff --git a/docs/manual/env.html.es b/docs/manual/env.html.es new file mode 100644 index 0000000000..6a028eb29d --- /dev/null +++ b/docs/manual/env.html.es @@ -0,0 +1,434 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Variables de entorno de Apache - Servidor HTTP Apache</title> +<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> +<link href="./images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p> +<p class="apache">Versión 2.0 del Servidor HTTP Apache</p> +<img alt="" src="./images/feather.gif" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs-project/">Documentación</a> > <a href="./">Versión 2.0</a></div><div id="page-content"><div id="preamble"><h1>Variables de entorno de Apache</h1> +<div class="toplang"> +<p><span>Idiomas disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" title="Español"> es </a> | +<a href="./fr/env.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div> + + <p>El servidor HTTP Apache HTTP ofrece un mecanismo para almacenar + información en variables especiales que se llaman + <em>variables de entorno</em>. Esta información puede ser + usada para controlar diversas operaciones como por ejemplo, + almacenar datos en ficheros de registro (log files) o controlar el + acceso al servidor. Las variables de entorno se usan también + como un mecanismo de comunicación con programas externos como + por ejemplo, scripts CGI. Este documento explica las diferentes + maneras de usar y manipular esas variables.</p> + + <p>Aunque estas variables se llaman <em>variables de entorno</em>, + no son iguales que las variables de entorno que controla el + sistema operativo de la máquina en que se está + ejecutando Apache. Las variables de entorno de Apache se almacenan + y manipulan la en estructura interna de Apache. Solamente se + convierten en auténticas variables de entorno del sistema + operativo cuando se pasan a scripts CGI o a scripts Server Side + Include. Si quiere manipular el entorno del sistema operativo + sobre el que Apache se está ejecutando, debe usar los + mecanismos estándar de manipulación que tenga su sistema + operativo.</p> + </div> +<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#setting">Especificación de variables de entorno</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#using">Cómo usar las variables de entorno</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#special">Variables de entorno con funciones especiales</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#examples">Ejemplos</a></li> +</ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="setting" id="setting">Especificación de variables de entorno</a></h2> + + <table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_env.html">mod_env</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li><li><code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#unsetenv">UnsetEnv</a></code></li></ul></td></tr></table> + + <h3><a name="basic-manipulation" id="basic-manipulation">Manipulación básica del entorno</a></h3> + + + <p>El modo más básico de especificar el valor de una + variable de entorno en Apache es usando la directiva + incondicional <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code>. Las variables pueden + también pasarse desde el shell en el que se inicio Apache + usando la directiva <code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code>.</p> + + + <h3><a name="conditional" id="conditional">Especificación condicional por petición</a></h3> + + + <p>Si necesita más flexibilidad, las directivas incluidas + con mod_setenvif permiten especificar valores para las + variables de entorno de manera condicional en función de + las caracteristicas particulares de la petición que se + esté procesando. Por ejemplo, se puede especificar un + valor para una variable solamente cuando la petición se + haga con un navegador específico, o solamente cuando la + petición contenga una determinada información en su + cabecera. Si necesita aún más flexibilidad, puede + conseguirla con la directiva <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> del módulo + mod_rewrite que tiene la opción <code>[E=...]</code> para + especificar valores en las variables de entorno.</p> + + + <h3><a name="unique-identifiers" id="unique-identifiers">Identificadores únicos</a></h3> + + + <p>Finalmente, mod_unique_id determina el valor de la variable + de entorno <code>UNIQUE_ID</code> para cada + petición. Este valor está garantizado que sea + único entre todas las peticiones bajo condiciones muy + específicas.</p> + + + <h3><a name="standard-cgi" id="standard-cgi">Variables CGI estándar</a></h3> + + + <p>Además de todas las variables de entorno especificadas + en la configuración de Apache y las que se pasan desde el + shell, los scripts CGI y las páginas SSI tienen un + conjunto de variables de entorno que contienen + meta-información sobre la petición tal y como + establece la <a href="http://cgi-spec.golux.com/">especificación + CGI</a>.</p> + + + <h3><a name="caveats" id="caveats">Algunas limitaciones</a></h3> + + + <ul> + <li>No es posible reeemplazar los valores o cambiar las + variables estándar CGI usando las directivas de + manipulación del entorno.</li> + + <li>Cuando se usa <code class="program"><a href="./programs/suexec.html">suexec</a></code> para + lanzar scripts CGI, el entorno se limpia y se queda reducido + a un conjunto de variables <em>seguras</em> antes de que se + lancen los scripts. La lista de variables <em>seguras</em> + se define en el momento de compilar en + <code>suexec.c</code>.</li> + + <li>Por razones de portabilidad, los nombres de las + variables de entorno solo pueden contener letras, + números y guiones bajos. Además, el primer + caracter no puede ser un número. Los caracteres que no + cumplan con esta restricción, se reemplazan + automáticamente por un guión bajo cuando se pasan + a scripts CGI y a páginas SSI.</li> + </ul> + + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="using" id="using">Cómo usar las variables de entorno</a></h2> + + + <table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_access.html">mod_access</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_access.html#allow">Allow</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_access.html#deny">Deny</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li></ul></td></tr></table> + + <h3><a name="cgi-scripts" id="cgi-scripts">Scripts CGI</a></h3> + + + <p>Uno de los principales usos de las variables de entorno es + pasar información a scripts CGI. Tal y como se explicaba + más arriba, el entorno que se pasa a los scripts CGI + incluye meta-información estándar acerca de la + petición además de cualquier variable especificada + en la configuración de Apache. Para obtener más + información sobre este tema consulte el <a href="howto/cgi.html">tutorial sobre CGIs</a>.</p> + + + <h3><a name="ssi-pages" id="ssi-pages">Páginas SSI</a></h3> + + + <p>Los documentos procesados por el servidor con el filtro + <code>INCLUDES</code> perteneciente a mod_include pueden + imprimir las variables de entorno usando el elemento + <code>echo</code>, y pueden usar las variables de entorno en + elementos de control de flujo para dividir en partes una + página condicional según las características de + la petición. Apache también sirve páginas SSI + con las variables CGI estándar tal y como se explica + más arriba en este documento. Para obetener más + información, consulte el <a href="howto/ssi.html">tutorial sobre SSI</a>.</p> + + + <h3><a name="access-control" id="access-control">Control de acceso</a></h3> + + + <p>El acceso al servidor puede ser controlado en función + del valor de las variables de entorno usando las directivas + <code>allow from env=</code> y <code>deny from env=</code>. En + combinación con la directiva <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, se puede tener un + control más flexible del acceso al servidor en + función de las características del cliente. Por + ejemplo, puede usar estas directivas para denegar el acceso si + el cliente usa un determinado navegador.</p> + + + <h3><a name="logging" id="logging">Registro condicional</a></h3> + + + <p>Los valores de las variables de entorno pueden registrarse + en el log de acceso usando la directiva <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> con la + opción <code>%e</code>. Además, la decisión + sobre qué peticiones se registran puede ser tomada en + función del valor de las variables de entorno usando la + forma condicional de la directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>. En + combinación con <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, esto permite controlar de forma + flexible de qué peticiones se guarda registro. Por + ejemplo, puede elegir no registrar las peticiones que se hagan + a ficheros cuyo nombre termine en <code>gif</code>, o puede + elegir registrar únicamente las peticiones que provengan + de clientes que estén fuera de su propia red.</p> + + + <h3><a name="response-headers" id="response-headers">Cabeceras de respuesta condicionales</a></h3> + + + <p>La directiva <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code> puede utilizar la + presencia o ausencia de una variable de entorno para + determinar si una determinada cabecera HTTP se incluye en la + respuesta al cliente. Esto permite, por ejemplo, que una + determinada cabecera de respuesta sea enviada únicamente + si también estaba presente en la petición del + cliente.</p> + + + + <h3><a name="external-filter" id="external-filter">Activación de filtros externos</a></h3> + + + <p>External filters configured by <code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code> + using the <code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code> directive can + by activated conditional on an environment variable using the + <code>disableenv=</code> and <code>enableenv=</code> options.</p> + + + <h3><a name="url-rewriting" id="url-rewriting">Reescritura de URLs</a></h3> + + + <p>La expresion <code>%{ENV:...}</code> de <em>TestString</em> + en una directiva <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> permite que el + motor de reescritura de mod_rewrite pueda tomar decisiones en + función del valor de variables de entorno. Tenga en + cuenta que las variables accesibles en mod_rewrite sin el + prefijo <code>ENV:</code> no son realmente variables de + entorno. En realidad, son variables especiales de mod_rewrite + que no pueden ser accedidas desde otros módulos.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="special" id="special">Variables de entorno con funciones especiales</a></h2> + + + <p>Los problemas de interoperatividad han conducido a la + introducción de mecanismos para modificar el + comportamiento de Apache cuando se comunica con determinados + clientes. Para hacer que esos mecanismos sean tan flexibles + como sea posible, se invocan definiendo variables de entorno, + normalmente con la directiva <code class="directive"><a href="./mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>, aunque + también se puede usar por ejemplo con las directivas + <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code> y <code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code>.</p> + + <h3><a name="downgrade" id="downgrade">downgrade-1.0</a></h3> + + + <p>Fuerza que la petición sea tratada como una petición + HTTP/1.0 incluso si viene en una especificación posterior.</p> + + + <h3><a name="force-no-vary" id="force-no-vary">force-no-vary</a></h3> + + + <p>Hace que cualquier campo <code>Vary</code> se elimine de la + cabecera de la respuesta antes de ser enviada al + cliente. Algunos clientes no interpretan este campo + correctamente (consulte la sección sobre <a href="misc/known_client_problems.html">problemas conocidos con + clientes</a>); usar esta variable puede evitar esos + problemas. Usar esta variable implica también el uso de + <strong>force-response-1.0</strong>.</p> + + + <h3><a name="force-response" id="force-response">force-response-1.0</a></h3> + + + <p>Fuerza que la respuesta a una petición HTTP/1.0 se haga + también según la especificación HTTP/1.0. Esto se + implementó originalmente como resultado de un problema con + los proxies de AOL. Algunos clientes HTTP/1.0 no se comportan + correctamente cuando se les envía una respuesta HTTP/1.1, y + este mecanismo hace que se pueda interactuar con ellos.</p> + + + + <h3><a name="gzip-only-text-html" id="gzip-only-text-html">gzip-only-text/html</a></h3> + + + <p>Cuando tiene valor "1", esta variable desactiva el filtro + de salida DEFLATE de <code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code> para + contenidos de tipo diferentes de <code>text/html</code>.</p> + + + <h3><a name="no-gzip" id="no-gzip">no-gzip</a></h3> + + <p>Cuando se especifica, se desactiva el filtro + <code>DEFLATE</code> de <code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code>.</p> + + + + <h3><a name="nokeepalive" id="nokeepalive">nokeepalive</a></h3> + + + <p>Desactiva <code class="directive"><a href="./mod/core.html#keepalive">KeepAlive</a></code>.</p> + + + + <h3><a name="prefer-language" id="prefer-language">prefer-language</a></h3> + + <p>Influye en el comportamiento de + <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>. Si contiene una etiqueta de + idioma (del tipo <code>en</code>, <code>ja</code> o + <code>x-klingon</code>), <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> + intenta que se use ese mismo idioma en la respuesta. Si no + está disponible ese idioma, se aplica el proceso de <a href="content-negotiation.html">negociación</a> + normal.</p> + + + + <h3><a name="redirect-carefully" id="redirect-carefully">redirect-carefully</a></h3> + + + <p>Fuerza que el servidor sea especialmente cuidadoso al + enviar una redirección al cliente. Se usa normalmente + cuando un cliente tiene un problema conocido tratando las + redirecciones. Fue implementado originalmente por el problema + que presentaba el software de WebFolders de Microsoft, que + tenía problemas interpretando redirecciones originadas + cuando se accedía a recursos servidos usando DAV.</p> + + + + <h3><a name="suppress-error-charset" id="suppress-error-charset">suppress-error-charset</a></h3> + + + <p><em>Disponible en las versiones de Apache 2.0.40 y posteriores</em></p> + + <p>Cuando Apache efectúa una redirección en respuesta a la + petición de un cliente, la respuesta incluye algún texto para que + se muestre en caso de que el cliente no pueda seguir (o no siga) + automáticamente la redirección. Apache normalmente etiqueta este + texto siguiendo la codificación ISO-8859-1.</p> + + <p>Sin embargo, si la redirección es a una página que + usa una codificación diferente, algunas versiones de + navegadores que no funcionan correctamente intentarán usar la + codificación del texto de redirección en lugar de la de + pagina a la que ha sido redireccionado. La consecuencia de esto + puede ser, por ejemplo, que una página en griego no se + muestre correctamente.</p> + + <p>Especificar un valor en esta variable de entorno hace que + Apache omita la codificación en el texto que incluye con las + redirecciones, y que esos navegadores que no funcionan + correctamente muestren correctamente la página de destino.</p> + + + + </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="examples" id="examples">Ejemplos</a></h2> + + + <h3><a name="misbehaving" id="misbehaving">Cómo cambiar el comportamiento de clientes que se + comportan de manera inapropiada</a></h3> + + + <p>Recomendamos que incluya las siguentes líneas en el + fichero httpd.conf para evitar problemas conocidos</p> +<div class="example"><pre> + +# +# Las siguientes directivas modifican el comportamiento normal de las respuestas HTTP. +# La primera directiva desactiva keepalive para Netscape 2.x y para navegadores +# que la simulan. Hay problemas conocidos con esos navegadores. +# La segunda directiva es para Microsoft Internet Explorer 4.0b2 +# que tiene un fallo en la implemantación de HTTP/1.1 y no soporta +# keepalive adecuadamente cuando se usan respuestas 301 ó 302 (redirecciones). +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# La siguiente directiva desactiva las respuestas HTTP/1.1 para navegadores que +# violan la especificación HTTP/1.0 @@@ by not being able to grok a +# basic 1.1 response @@@. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0</pre></div> + + + <h3><a name="no-img-log" id="no-img-log">No almacenar entradas en registro de acceso para las + imágenes</a></h3> + + + <p>Este ejemplo evita que las peticiones de imágenes + aparezcan en el registro de acceso. Puede ser modificada + fácilmente para evitar que se registren entradas de + peticiones de directorios, o provenientes de determinados + clientes.</p> + + <div class="example"><pre> +SetEnvIf Request_URI \.gif image-request +SetEnvIf Request_URI \.jpg image-request +SetEnvIf Request_URI \.png image-request +CustomLog logs/access_log common env=!image-request</pre></div> + + + <h3><a name="image-theft" id="image-theft">Evitar el "robo de imagenes"</a></h3> + + + <p>Este ejemplo muestra como evitar que otras webs usen las + imágenes de su servidor para sus páginas. Esta + configuración no se recomienda, pero puede funcionar en + determinadas circunstancias. Asumimos que que todas sus + imágenes están en un directorio llamado + /web/images.</p> + + <div class="example"><pre> +SetEnvIf Referer "^http://www.example.com/" local_referal +# Allow browsers that do not send Referer info +SetEnvIf Referer "^$" local_referal +<Directory /web/images> + Order Deny,Allow + Deny from all + Allow from env=local_referal +</Directory></pre></div> + + <p>Para obtener más información sobre esta + técnica, consulte el tutorial de ApacheToday " <a href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS"> + Keeping Your Images from Adorning Other Sites</a>".</p> + </div></div> +<div class="bottomlang"> +<p><span>Idiomas disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" title="Español"> es </a> | +<a href="./fr/env.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div><div id="footer"> +<p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p></div> +</body></html>
\ No newline at end of file diff --git a/docs/manual/env.html.fr b/docs/manual/env.html.fr index e50bf338dc..4684ffb955 100644 --- a/docs/manual/env.html.fr +++ b/docs/manual/env.html.fr @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Apache et les variables d'environnement</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/env.html" title="Français"> fr </a> | <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> @@ -410,6 +411,7 @@ SetEnvIf Referer "^$" local_referal </div></div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/env.html" title="Français"> fr </a> | <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> diff --git a/docs/manual/env.html.ja.euc-jp b/docs/manual/env.html.ja.euc-jp index 62d7b2a37f..387634d3a2 100644 --- a/docs/manual/env.html.ja.euc-jp +++ b/docs/manual/env.html.ja.euc-jp @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP ¥µ¡¼¥Ð</a> > <a href="http://httpd.apache.org/docs-project/">¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó</a> > <a href="./">¥Ð¡¼¥¸¥ç¥ó 2.0</a></div><div id="page-content"><div id="preamble"><h1>Apache ¤Î´Ä¶ÊÑ¿ô</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Espa«Ðol"> es </a> | <a href="./fr/env.html" hreflang="fr" rel="alternate" title="Fran«®ais"> fr </a> | <a href="./ja/env.html" title="Japanese"> ja </a> | <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> @@ -378,6 +379,7 @@ SetEnvIf Referer "^$" local_referal </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Espa«Ðol"> es </a> | <a href="./fr/env.html" hreflang="fr" rel="alternate" title="Fran«®ais"> fr </a> | <a href="./ja/env.html" title="Japanese"> ja </a> | <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> diff --git a/docs/manual/env.html.ko.euc-kr b/docs/manual/env.html.ko.euc-kr index eebd45e532..6a6d643df5 100644 --- a/docs/manual/env.html.ko.euc-kr +++ b/docs/manual/env.html.ko.euc-kr @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>¾ÆÆÄÄ¡ÀÇ È¯°æº¯¼ö</h1> <div class="toplang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/env.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/env.html" title="Korean"> ko </a></p> @@ -357,6 +358,7 @@ SetEnvIf Referer "^$" local_referal </div></div> <div class="bottomlang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/env.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./fr/env.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/env.html" title="Korean"> ko </a></p> diff --git a/docs/manual/env.xml.es b/docs/manual/env.xml.es new file mode 100644 index 0000000000..9474beef55 --- /dev/null +++ b/docs/manual/env.xml.es @@ -0,0 +1,472 @@ +<?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 2002-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="env.xml.meta"> + + <title>Variables de entorno de Apache</title> + + <summary> + <p>El servidor HTTP Apache HTTP ofrece un mecanismo para almacenar + información en variables especiales que se llaman + <em>variables de entorno</em>. Esta información puede ser + usada para controlar diversas operaciones como por ejemplo, + almacenar datos en ficheros de registro (log files) o controlar el + acceso al servidor. Las variables de entorno se usan también + como un mecanismo de comunicación con programas externos como + por ejemplo, scripts CGI. Este documento explica las diferentes + maneras de usar y manipular esas variables.</p> + + <p>Aunque estas variables se llaman <em>variables de entorno</em>, + no son iguales que las variables de entorno que controla el + sistema operativo de la máquina en que se está + ejecutando Apache. Las variables de entorno de Apache se almacenan + y manipulan la en estructura interna de Apache. Solamente se + convierten en auténticas variables de entorno del sistema + operativo cuando se pasan a scripts CGI o a scripts Server Side + Include. Si quiere manipular el entorno del sistema operativo + sobre el que Apache se está ejecutando, debe usar los + mecanismos estándar de manipulación que tenga su sistema + operativo.</p> + </summary> + + <section id="setting"> + <title>Especificación de variables de entorno</title> + <related> + <modulelist> + <module>mod_env</module> + <module>mod_rewrite</module> + <module>mod_setenvif</module> + <module>mod_unique_id</module> + </modulelist> + <directivelist> + <directive module="mod_setenvif">BrowserMatch</directive> + <directive module="mod_setenvif">BrowserMatchNoCase</directive> + <directive module="mod_env">PassEnv</directive> + <directive module="mod_rewrite">RewriteRule</directive> + <directive module="mod_env">SetEnv</directive> + <directive module="mod_setenvif">SetEnvIf</directive> + <directive module="mod_setenvif">SetEnvIfNoCase</directive> + <directive module="mod_env">UnsetEnv</directive> + </directivelist> + </related> + + <section id="basic-manipulation"> + <title>Manipulación básica del entorno</title> + + <p>El modo más básico de especificar el valor de una + variable de entorno en Apache es usando la directiva + incondicional <directive + module="mod_env">SetEnv</directive>. Las variables pueden + también pasarse desde el shell en el que se inicio Apache + usando la directiva <directive + module="mod_env">PassEnv</directive>.</p> + + </section> + <section id="conditional"> + <title>Especificación condicional por petición</title> + + <p>Si necesita más flexibilidad, las directivas incluidas + con mod_setenvif permiten especificar valores para las + variables de entorno de manera condicional en función de + las caracteristicas particulares de la petición que se + esté procesando. Por ejemplo, se puede especificar un + valor para una variable solamente cuando la petición se + haga con un navegador específico, o solamente cuando la + petición contenga una determinada información en su + cabecera. Si necesita aún más flexibilidad, puede + conseguirla con la directiva <directive + module="mod_rewrite">RewriteRule</directive> del módulo + mod_rewrite que tiene la opción <code>[E=...]</code> para + especificar valores en las variables de entorno.</p> + + </section> + <section id="unique-identifiers"> + <title>Identificadores únicos</title> + + <p>Finalmente, mod_unique_id determina el valor de la variable + de entorno <code>UNIQUE_ID</code> para cada + petición. Este valor está garantizado que sea + único entre todas las peticiones bajo condiciones muy + específicas.</p> + + </section> + <section id="standard-cgi"> + <title>Variables CGI estándar</title> + + <p>Además de todas las variables de entorno especificadas + en la configuración de Apache y las que se pasan desde el + shell, los scripts CGI y las páginas SSI tienen un + conjunto de variables de entorno que contienen + meta-información sobre la petición tal y como + establece la <a + href="http://cgi-spec.golux.com/">especificación + CGI</a>.</p> + + </section> + <section id="caveats"> + <title>Algunas limitaciones</title> + + <ul> + <li>No es posible reeemplazar los valores o cambiar las + variables estándar CGI usando las directivas de + manipulación del entorno.</li> + + <li>Cuando se usa <program>suexec</program> para + lanzar scripts CGI, el entorno se limpia y se queda reducido + a un conjunto de variables <em>seguras</em> antes de que se + lancen los scripts. La lista de variables <em>seguras</em> + se define en el momento de compilar en + <code>suexec.c</code>.</li> + + <li>Por razones de portabilidad, los nombres de las + variables de entorno solo pueden contener letras, + números y guiones bajos. Además, el primer + caracter no puede ser un número. Los caracteres que no + cumplan con esta restricción, se reemplazan + automáticamente por un guión bajo cuando se pasan + a scripts CGI y a páginas SSI.</li> + </ul> + </section> + </section> + <section id="using"> + <title>Cómo usar las variables de entorno</title> + + <related> + <modulelist> + <module>mod_access</module> + <module>mod_cgi</module> + <module>mod_ext_filter</module> + <module>mod_headers</module> + <module>mod_include</module> + <module>mod_log_config</module> + <module>mod_rewrite</module> + </modulelist> + <directivelist> + <directive module="mod_access">Allow</directive> + <directive module="mod_log_config">CustomLog</directive> + <directive module="mod_access">Deny</directive> + <directive module="mod_ext_filter">ExtFilterDefine</directive> + <directive module="mod_headers">Header</directive> + <directive module="mod_log_config">LogFormat</directive> + <directive module="mod_rewrite">RewriteCond</directive> + <directive module="mod_rewrite">RewriteRule</directive> + </directivelist> + </related> + + <section id="cgi-scripts"> + <title>Scripts CGI</title> + + <p>Uno de los principales usos de las variables de entorno es + pasar información a scripts CGI. Tal y como se explicaba + más arriba, el entorno que se pasa a los scripts CGI + incluye meta-información estándar acerca de la + petición además de cualquier variable especificada + en la configuración de Apache. Para obtener más + información sobre este tema consulte el <a + href="howto/cgi.html">tutorial sobre CGIs</a>.</p> + + </section> + <section id="ssi-pages"> + <title>Páginas SSI</title> + + <p>Los documentos procesados por el servidor con el filtro + <code>INCLUDES</code> perteneciente a mod_include pueden + imprimir las variables de entorno usando el elemento + <code>echo</code>, y pueden usar las variables de entorno en + elementos de control de flujo para dividir en partes una + página condicional según las características de + la petición. Apache también sirve páginas SSI + con las variables CGI estándar tal y como se explica + más arriba en este documento. Para obetener más + información, consulte el <a + href="howto/ssi.html">tutorial sobre SSI</a>.</p> + + </section> + <section id="access-control"> + <title>Control de acceso</title> + + <p>El acceso al servidor puede ser controlado en función + del valor de las variables de entorno usando las directivas + <code>allow from env=</code> y <code>deny from env=</code>. En + combinación con la directiva <directive + module="mod_setenvif">SetEnvIf</directive>, se puede tener un + control más flexible del acceso al servidor en + función de las características del cliente. Por + ejemplo, puede usar estas directivas para denegar el acceso si + el cliente usa un determinado navegador.</p> + + </section> + <section id="logging"> + <title>Registro condicional</title> + + <p>Los valores de las variables de entorno pueden registrarse + en el log de acceso usando la directiva <directive + module="mod_log_config">LogFormat</directive> con la + opción <code>%e</code>. Además, la decisión + sobre qué peticiones se registran puede ser tomada en + función del valor de las variables de entorno usando la + forma condicional de la directiva <directive + module="mod_log_config">CustomLog</directive>. En + combinación con <directive module="mod_setenvif" + >SetEnvIf</directive>, esto permite controlar de forma + flexible de qué peticiones se guarda registro. Por + ejemplo, puede elegir no registrar las peticiones que se hagan + a ficheros cuyo nombre termine en <code>gif</code>, o puede + elegir registrar únicamente las peticiones que provengan + de clientes que estén fuera de su propia red.</p> + + </section> + <section id="response-headers"> + <title>Cabeceras de respuesta condicionales</title> + + <p>La directiva <directive + module="mod_headers">Header</directive> puede utilizar la + presencia o ausencia de una variable de entorno para + determinar si una determinada cabecera HTTP se incluye en la + respuesta al cliente. Esto permite, por ejemplo, que una + determinada cabecera de respuesta sea enviada únicamente + si también estaba presente en la petición del + cliente.</p> + + </section> + + <section id="external-filter"> + <title>Activación de filtros externos</title> + + <p>External filters configured by <module>mod_ext_filter</module> + using the <directive + module="mod_ext_filter">ExtFilterDefine</directive> directive can + by activated conditional on an environment variable using the + <code>disableenv=</code> and <code>enableenv=</code> options.</p> + </section> + + <section id="url-rewriting"> + <title>Reescritura de URLs</title> + + <p>La expresion <code>%{ENV:...}</code> de <em>TestString</em> + en una directiva <directive + module="mod_rewrite">RewriteCond</directive> permite que el + motor de reescritura de mod_rewrite pueda tomar decisiones en + función del valor de variables de entorno. Tenga en + cuenta que las variables accesibles en mod_rewrite sin el + prefijo <code>ENV:</code> no son realmente variables de + entorno. En realidad, son variables especiales de mod_rewrite + que no pueden ser accedidas desde otros módulos.</p> + </section> + </section> + + <section id="special"> + <title>Variables de entorno con funciones especiales</title> + + <p>Los problemas de interoperatividad han conducido a la + introducción de mecanismos para modificar el + comportamiento de Apache cuando se comunica con determinados + clientes. Para hacer que esos mecanismos sean tan flexibles + como sea posible, se invocan definiendo variables de entorno, + normalmente con la directiva <directive + module="mod_setenvif">BrowserMatch</directive>, aunque + también se puede usar por ejemplo con las directivas + <directive module="mod_env">SetEnv</directive> y <directive + module="mod_env">PassEnv</directive>.</p> + + <section id="downgrade"> + <title>downgrade-1.0</title> + + <p>Fuerza que la petición sea tratada como una petición + HTTP/1.0 incluso si viene en una especificación posterior.</p> + + </section> + <section id="force-no-vary"> + <title>force-no-vary</title> + + <p>Hace que cualquier campo <code>Vary</code> se elimine de la + cabecera de la respuesta antes de ser enviada al + cliente. Algunos clientes no interpretan este campo + correctamente (consulte la sección sobre <a + href="misc/known_client_problems.html">problemas conocidos con + clientes</a>); usar esta variable puede evitar esos + problemas. Usar esta variable implica también el uso de + <strong>force-response-1.0</strong>.</p> + + </section> + <section id="force-response"> + <title>force-response-1.0</title> + + <p>Fuerza que la respuesta a una petición HTTP/1.0 se haga + también según la especificación HTTP/1.0. Esto se + implementó originalmente como resultado de un problema con + los proxies de AOL. Algunos clientes HTTP/1.0 no se comportan + correctamente cuando se les envía una respuesta HTTP/1.1, y + este mecanismo hace que se pueda interactuar con ellos.</p> + + </section> + + <section id="gzip-only-text-html"> + <title>gzip-only-text/html</title> + + <p>Cuando tiene valor "1", esta variable desactiva el filtro + de salida DEFLATE de <module>mod_deflate</module> para + contenidos de tipo diferentes de <code>text/html</code>.</p> + </section> + + <section id="no-gzip"><title>no-gzip</title> + + <p>Cuando se especifica, se desactiva el filtro + <code>DEFLATE</code> de <module>mod_deflate</module>.</p> + + </section> + + <section id="nokeepalive"> + <title>nokeepalive</title> + + <p>Desactiva <directive module="core">KeepAlive</directive>.</p> + + </section> + + <section id="prefer-language"><title>prefer-language</title> + + <p>Influye en el comportamiento de + <module>mod_negotiation</module>. Si contiene una etiqueta de + idioma (del tipo <code>en</code>, <code>ja</code> o + <code>x-klingon</code>), <module>mod_negotiation</module> + intenta que se use ese mismo idioma en la respuesta. Si no + está disponible ese idioma, se aplica el proceso de <a + href="content-negotiation.html">negociación</a> + normal.</p> + + </section> + + <section id="redirect-carefully"> + <title>redirect-carefully</title> + + <p>Fuerza que el servidor sea especialmente cuidadoso al + enviar una redirección al cliente. Se usa normalmente + cuando un cliente tiene un problema conocido tratando las + redirecciones. Fue implementado originalmente por el problema + que presentaba el software de WebFolders de Microsoft, que + tenía problemas interpretando redirecciones originadas + cuando se accedía a recursos servidos usando DAV.</p> + + </section> + + <section id="suppress-error-charset"> + <title>suppress-error-charset</title> + + <p><em>Disponible en las versiones de Apache 2.0.40 y posteriores</em></p> + + <p>Cuando Apache efectúa una redirección en respuesta a la + petición de un cliente, la respuesta incluye algún texto para que + se muestre en caso de que el cliente no pueda seguir (o no siga) + automáticamente la redirección. Apache normalmente etiqueta este + texto siguiendo la codificación ISO-8859-1.</p> + + <p>Sin embargo, si la redirección es a una página que + usa una codificación diferente, algunas versiones de + navegadores que no funcionan correctamente intentarán usar la + codificación del texto de redirección en lugar de la de + pagina a la que ha sido redireccionado. La consecuencia de esto + puede ser, por ejemplo, que una página en griego no se + muestre correctamente.</p> + + <p>Especificar un valor en esta variable de entorno hace que + Apache omita la codificación en el texto que incluye con las + redirecciones, y que esos navegadores que no funcionan + correctamente muestren correctamente la página de destino.</p> + + </section> + + </section> + + <section id="examples"> + <title>Ejemplos</title> + + <section id="misbehaving"> + <title>Cómo cambiar el comportamiento de clientes que se + comportan de manera inapropiada</title> + + <p>Recomendamos que incluya las siguentes líneas en el + fichero httpd.conf para evitar problemas conocidos</p> +<example><pre> + +# +# Las siguientes directivas modifican el comportamiento normal de las respuestas HTTP. +# La primera directiva desactiva keepalive para Netscape 2.x y para navegadores +# que la simulan. Hay problemas conocidos con esos navegadores. +# La segunda directiva es para Microsoft Internet Explorer 4.0b2 +# que tiene un fallo en la implemantación de HTTP/1.1 y no soporta +# keepalive adecuadamente cuando se usan respuestas 301 ó 302 (redirecciones). +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# La siguiente directiva desactiva las respuestas HTTP/1.1 para navegadores que +# violan la especificación HTTP/1.0 @@@ by not being able to grok a +# basic 1.1 response @@@. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0</pre></example> + + </section> + <section id="no-img-log"> + <title>No almacenar entradas en registro de acceso para las + imágenes</title> + + <p>Este ejemplo evita que las peticiones de imágenes + aparezcan en el registro de acceso. Puede ser modificada + fácilmente para evitar que se registren entradas de + peticiones de directorios, o provenientes de determinados + clientes.</p> + + <example><pre> +SetEnvIf Request_URI \.gif image-request +SetEnvIf Request_URI \.jpg image-request +SetEnvIf Request_URI \.png image-request +CustomLog logs/access_log common env=!image-request</pre></example> + + </section> + <section id="image-theft"> + <title>Evitar el "robo de imagenes"</title> + + <p>Este ejemplo muestra como evitar que otras webs usen las + imágenes de su servidor para sus páginas. Esta + configuración no se recomienda, pero puede funcionar en + determinadas circunstancias. Asumimos que que todas sus + imágenes están en un directorio llamado + /web/images.</p> + + <example><pre> +SetEnvIf Referer "^http://www.example.com/" local_referal +# Allow browsers that do not send Referer info +SetEnvIf Referer "^$" local_referal +<Directory /web/images> + Order Deny,Allow + Deny from all + Allow from env=local_referal +</Directory></pre></example> + + <p>Para obtener más información sobre esta + técnica, consulte el tutorial de ApacheToday " <a + href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS"> + Keeping Your Images from Adorning Other Sites</a>".</p> + </section> </section> </manualpage> diff --git a/docs/manual/env.xml.meta b/docs/manual/env.xml.meta index 5949842ac0..c33c15a6b8 100644 --- a/docs/manual/env.xml.meta +++ b/docs/manual/env.xml.meta @@ -7,6 +7,7 @@ <variants> <variant>en</variant> + <variant>es</variant> <variant>fr</variant> <variant outdated="yes">ja</variant> <variant outdated="yes">ko</variant> diff --git a/docs/manual/install.html.es b/docs/manual/install.html.es index 5170973274..57cfe393f2 100644 --- a/docs/manual/install.html.es +++ b/docs/manual/install.html.es @@ -25,10 +25,6 @@ <a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="./ru/install.html" hreflang="ru" rel="alternate" title="Russian"> ru </a></p> </div> -<div class="outofdate">Esta traducción podría estar - obsoleta. Consulte la versión en inglés de la - documentación para comprobar si se han producido cambios - recientemente.</div> <p>Este documento explica cómo compilar e instalar Apache en @@ -399,17 +395,20 @@ prrevia</a></h2> posteriores a la 2.0.41; las versiones anteriores contienen cambios incompatibles.)</p> - <p>Si va a conservar la estructura de directorios de su anterior - instalación, la actualización es más fácil - incluso. El fichero <code>config.nice</code> que está en el - directorio raiz de la estructura de directorios antigua contiene - exactamente el comando <code class="program"><a href="./programs/configure.html">configure</a></code> que usted usó - para configurar la estructura de directorios de Apache. Entonces, - para actualizar su instalación de una versóon a la - siguinete, solo tiene que copiar el archivo - <code>config.nice</code> a la estructura de directorios del - código fuente de la nueva versión, editarlo, hacer - cualquier cambio que desee, y ejecutarlo :</p> + <p>Si la actualización es entre versiones menores (por + ejemplo, de la 2.0.55 a la 2.0.57), lo primero que debe hacer es + encontrar el fichero <code>config.nice</code> en el directorio + <code>build</code> de la instalación antigua de Apache que + desea actualizar o en el directorio raiz de la estructura de + directorios con las fuentes del servidor que uso para su anterior + instalación. Ese fichero contiene el comando + <code class="program"><a href="./programs/configure.html">configure</a></code> exacto que usó originalmente + para configurar la estructura de directorios de las fuentes de + Apache. Para actualizar su instalación de una versión a + la siguiente, solo tiene que copiar el archivo + <code>config.nice</code> a la estructura de directorios que + contiene las fuentes de la nueva versión de Apache, editarlo, + hacer cualquier cambio que desee, y ejecutar:</p> <div class="example"><p><code> $ ./config.nice<br /> diff --git a/docs/manual/install.xml.es b/docs/manual/install.xml.es index 65aff6c446..eed1b8b68a 100644 --- a/docs/manual/install.xml.es +++ b/docs/manual/install.xml.es @@ -1,7 +1,7 @@ <?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:178522 (outdated) --> +<!-- English Revision: 178522 --> <!-- Copyright 2004-2005 The Apache Software Foundation @@ -394,17 +394,20 @@ prrevia</title> posteriores a la 2.0.41; las versiones anteriores contienen cambios incompatibles.)</p> - <p>Si va a conservar la estructura de directorios de su anterior - instalación, la actualización es más fácil - incluso. El fichero <code>config.nice</code> que está en el - directorio raiz de la estructura de directorios antigua contiene - exactamente el comando <program>configure</program> que usted usó - para configurar la estructura de directorios de Apache. Entonces, - para actualizar su instalación de una versóon a la - siguinete, solo tiene que copiar el archivo - <code>config.nice</code> a la estructura de directorios del - código fuente de la nueva versión, editarlo, hacer - cualquier cambio que desee, y ejecutarlo :</p> + <p>Si la actualización es entre versiones menores (por + ejemplo, de la 2.0.55 a la 2.0.57), lo primero que debe hacer es + encontrar el fichero <code>config.nice</code> en el directorio + <code>build</code> de la instalación antigua de Apache que + desea actualizar o en el directorio raiz de la estructura de + directorios con las fuentes del servidor que uso para su anterior + instalación. Ese fichero contiene el comando + <program>configure</program> exacto que usó originalmente + para configurar la estructura de directorios de las fuentes de + Apache. Para actualizar su instalación de una versión a + la siguiente, solo tiene que copiar el archivo + <code>config.nice</code> a la estructura de directorios que + contiene las fuentes de la nueva versión de Apache, editarlo, + hacer cualquier cambio que desee, y ejecutar:</p> <example> $ ./config.nice<br /> diff --git a/docs/manual/install.xml.meta b/docs/manual/install.xml.meta index e0e35e7b9e..236cdc85fa 100644 --- a/docs/manual/install.xml.meta +++ b/docs/manual/install.xml.meta @@ -8,7 +8,7 @@ <variants> <variant outdated="yes">de</variant> <variant>en</variant> - <variant outdated="yes">es</variant> + <variant>es</variant> <variant outdated="yes">ja</variant> <variant outdated="yes">ko</variant> <variant outdated="yes">ru</variant> diff --git a/docs/manual/sections.html b/docs/manual/sections.html index 02645f01bf..faedca33e5 100644 --- a/docs/manual/sections.html +++ b/docs/manual/sections.html @@ -2,6 +2,10 @@ URI: sections.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: sections.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + URI: sections.html.ja.euc-jp Content-Language: ja Content-type: text/html; charset=EUC-JP diff --git a/docs/manual/sections.html.en b/docs/manual/sections.html.en index bdac1856f9..9f53d3293e 100644 --- a/docs/manual/sections.html.en +++ b/docs/manual/sections.html.en @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Configuration Sections</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="./en/sections.html" title="English"> en </a> | +<a href="./es/sections.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div> @@ -445,6 +446,7 @@ Deny from badguy.example.com<br /> </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="./en/sections.html" title="English"> en </a> | +<a href="./es/sections.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div><div id="footer"> diff --git a/docs/manual/sections.html.es b/docs/manual/sections.html.es new file mode 100644 index 0000000000..facf22b5f4 --- /dev/null +++ b/docs/manual/sections.html.es @@ -0,0 +1,490 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Secciones de configuración - Servidor HTTP Apache</title> +<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> +<link href="./images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p> +<p class="apache">Versión 2.0 del Servidor HTTP Apache</p> +<img alt="" src="./images/feather.gif" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs-project/">Documentación</a> > <a href="./">Versión 2.0</a></div><div id="page-content"><div id="preamble"><h1>Secciones de configuración</h1> +<div class="toplang"> +<p><span>Idiomas disponibles: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/sections.html" title="Español"> es </a> | +<a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div> + <p> Las directivas presentes en los <a href="configuring.html">ficheros de configuración</a> pueden ser +de aplicación para todo el servidor, o puede que su +aplicación se limite solamente a determinados directorios, +ficheros, hosts, o URLs. Este documento explica cómo usar las +secciones de configuración y los ficheros <code>.htaccess</code> +para modificar el ámbito de aplicación de las directivas de +configuración.</p> </div> +<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#types">Tipos de secciones de +configuración</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#file-and-web">Sistemas de ficheros y espacio +web</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Hosts virtuales</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#proxy">Proxy</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#whatwhere">¿Qué directivas se pueden +usar?</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#mergin">¿Cómo se fusionan las distintas +secciones?</a></li> +</ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="types" id="types">Tipos de secciones de +configuración</a></h2> + +<table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#files"><Files></a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code></li><li><code class="directive"><a href="./mod/core.html#location"><Location></a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table> + +<p>Exiten dos tipos básicos de secciones de +configuración. Por un lado, la mayoría de las secciones de +configuración se evalúan para cada petición que se +recibe y se aplican las directivas que se incluyen en las distintas +secciones solamente a las peticiones que se adecúan a +determinadas características. Por otro lado, las secciones de tipo +<code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> e +<code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code>, se +evalúan solamente al inicio o reinicio del servidor. Si al +iniciar el servidor las condiciones son las adecuadas, las directivas +que incluyen estas secciones se aplicarán a todas las peticiones +que se reciban. Es caso contrario, esas directivas que incluyen se +ignoran completamente.</p> + +<p>Las secciones <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> incluyen directivas que se +aplicarán solamente si se pasa un determinado parámetro por +línea de comandos al ejecutar <code class="program"><a href="./programs/httpd.html">httpd</a></code>. Por +ejemplo, con la siguiente configuración, todas las peticiones +serán redireccionadas a otro sitio web solamente si el servidor +se inició usando <code>httpd -DClosedForNow</code>:</p> + +<div class="example"><p><code> +<IfDefine ClosedForNow><br /> +Redirect / http://otherserver.example.com/<br /> +</IfDefine> +</code></p></div> + +<p>La sección <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> es muy parecida. La diferencia +respecto a <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> está en que incluye directivas +que se aplicarán solamente si un determinado módulo en +particular está disponible en el servidor. El módulo debe +estar compilado estáticamente en el servidor, o si está +compilado de forma dinámica ha de ponerse antes una línea +<code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> en el fichero de +configuración. Esta directiva debe usarla solamente si necesita +que su fichero de configuración funcione estén o no +instalados determinados módulos. No debe usarla para incluir +directivas que quiera que se apliquen siempre, porque puede suprimir +mensajes de error que pueden ser de mucha utilidad para detectar la +falta de algún módulo.</p> + +<p>En el siguiente ejemplo, la directiva <code class="directive"><a href="./mod/mod_mime_magic.html#mimemagicfiles">MimeMagicFiles</a></code> se aplicará +solamente si el módulo <code class="module"><a href="./mod/mod_mime_magic.html">mod_mime_magic</a></code> está +disponible.</p> + +<div class="example"><p><code> +<IfModule mod_mime_magic.c><br /> +MimeMagicFile conf/magic<br /> +</IfModule> +</code></p></div> + +<p>Tanto <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> +como <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> +pueder usarse con condiones negativas anteponiendo al test el +carácter "!". Estas secciones también pueden anidarse para +establecer restricciones más complejas.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="file-and-web" id="file-and-web">Sistemas de ficheros y espacio +web</a></h2> + +<p>Las secciones de configuración usadas con más frecuencia +son las que cambian la configuración de áreas del sistema de +ficheros o del espacio web. En primer lugar, es importante comprender +la diferencia que existe entre estos dos conceptos. El sistema de +ficheros es la visión de sus discos desde el punto de vista del +sistema operativo. Por ejemplo, en una instalación estándar, +Apache estará en <code>/usr/local/apache2</code> en un sistema +Unix o en <code>"c:/Program Files/Apache Group/Apache2"</code> en un +sistema Windows. (Tenga en cuenta que con Apache debe usar siempre +barras /, incluso en Windows.) Por el contrario, el espacio web lo +que presenta el servidor web y que visualiza el cliente. De manera que +la ruta <code>/dir/</code> en el espacio web se corresponde con la +ruta <code>/usr/local/apache2/htdocs/dir/</code> en el sistema de +ficheros de una instalación estándar en Unix. El espacio +web no tiene que tener correspondencia directa con el sistema de +ficheros, porque las páginas web pueden generarse de forma +dinámica a partir de bases de datos o partiendo de otras +ubicaciones.</p> + +<h3><a name="filesystem" id="filesystem">Secciones relacionadas con el sistema +de ficheros</a></h3> + +<p>Las secciones <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> y <code class="directive"><a href="./mod/core.html#files"><Files></a></code>, junto con sus contrapartes que usan +expresiones regulares, aplican sus directivas a áreas del sistema de +ficheros. Las directivas incluidas en una sección <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> se aplican al +directorio del sistema de ficheros especificado y a sus +subdirectorios. El mismo resultado puede obtenerse usando <a href="howto/htaccess.html">ficheros .htaccess</a>. Por ejemplo, en la +siguiente configuración, se activarán los índices de +directorio para el directorio <code>/var/web/dir1</code> y sus +subdirectorios.</p> + +<div class="example"><p><code> +<Directory /var/web/dir1><br /> +Options +Indexes<br /> +</Directory> +</code></p></div> + +<p>Las directivas incluidas en una sección <code class="directive"><a href="./mod/core.html#files"><Files></a></code> se aplicarán a +cualquier fichero cuyo nombre se especifique, sin tener en cuenta en +que directorio se encuentra. Por ejemplo, las siguientes directivas de +configuración, cuando se colocan en la sección principal del +fichero de configuración, deniegan el acceso a cualquier fichero +llamado <code>private.html</code> sin tener en cuenta de donde se +encuentre.</p> + +<div class="example"><p><code> +<Files private.html><br /> +Order allow,deny<br /> +Deny from all<br /> +</Files> +</code></p></div> + +<p>Para referirse a archivos que se encuentren en un determinado lugar +del sistema de ficheros, se pueden combinar las secciones <code class="directive"><a href="./mod/core.html#files"><Files></a></code> y <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>. Por ejemplo, la +siguiente configuración denegará el acceso a +<code>/var/web/dir1/private.html</code>, +<code>/var/web/dir1/subdir2/private.html</code>, +<code>/var/web/dir1/subdir3/private.html</code>, y cualquier otra +aparición de <code>private.html</code> que se encuentre en +<code>/var/web/dir1/</code> o cualquiera de sus subdirectorios.</p> + +<div class="example"><p><code> +<Directory /var/web/dir1><br /> +<Files private.html><br /> +Order allow,deny<br /> +Deny from all<br /> +</Files><br /> +</Directory> +</code></p></div> + + +<h3><a name="webspace" id="webspace">Secciones relacionadas con el espacio +web</a></h3> + +<p>La sección <code class="directive"><a href="./mod/core.html#location"><Location></a></code> y su contraparte que usa + expresiones regulares, cambian + la configuración para el contenido del espacio web. Por ejemplo, + la siguiente configuración evita que se acceda a cualquier URL + que empiece por /private. En concreto, se aplicará a + peticiones que vayan dirigidas a + <code>http://yoursite.example.com/private</code>, + <code>http://yoursite.example.com/private123</code>, y a + <code>http://yoursite.example.com/private/dir/file.html</code> + así como + también a cualquier otra petición que comience por + <code>/private</code>.</p> + +<div class="example"><p><code> +<Location /private><br /> +Order Allow,Deny<br /> +Deny from all<br /> +</Location> +</code></p></div> + +<p>La sección <code class="directive"><a href="./mod/core.html#location"><Location></a></code> puede no tener nada que ver con el +sistema de ficheros. Por ejemplo, el siguiente ejemplo muestra como +asociar una determinada URL a un handler interno de Apache del +módulo <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>. No tiene por qué +existir ningún fichero <code>server-status</code> en el sistema +de ficheros.</p> + +<div class="example"><p><code> +<Location /server-status><br /> +SetHandler server-status<br /> +</Location> +</code></p></div> + + +<h3><a name="wildcards" id="wildcards">Caracteres comodín y expresiones +regulares</a></h3> + +<p>Las secciones <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="./mod/core.html#files"><Files></a></code>, y <code class="directive"><a href="./mod/core.html#location"><Location></a></code> pueden usar caracteres comodín +del tipo <code>fnmatch</code> de la librería estándar de C. +El carácter "*" equivale a cualquier secuencia de caracteres, "?" +equivale a cualquier carácter individual, y "[<em>seq</em>]" +equivale a cualquier carácter en <em>seq</em>. Ningún +carácter comodín equivale a"/", que debe siempre +especificarse explícitamente.</p> + +<p>Si necesita un sistema de equivalencias más flexible, cada +sección tiene una contraparte que acepta <a href="glossary.html#regex">expresiones regulares</a> compatibles con +Perl: <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>, y <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code>. Consulte la sección +sobre la fusión de secciones de configuración para ver la +forma en que las secciones expresiones regulares cambian el modo en +que se aplican las directivas.</p> + +<p>Abajo se muestra un ejemplo en el que una sección de +configuración que usa caracteres comodín en lugar de una +expresión regular modifica la configuración de todos los +directorios de usuario:</p> + +<div class="example"><p><code> +<Directory /home/*/public_html><br /> +Options Indexes<br /> +</Directory> +</code></p></div> + +<p>Usando expresiones regulares, podemos denegar el acceso a muchos +tipos ficheros de imágenes de una sola vez:</p> + +<div class="example"><p><code> +<FilesMatch \.(?i:gif|jpe?g|png)$><br /> +Order allow,deny<br /> +Deny from all<br /> +</FilesMatch> +</code></p></div> + + + +<h3><a name="whichwhen" id="whichwhen">Qué usar en cada momento</a></h3> + +<p>Decidir cuando hay que usar secciones que se apliquen sobre el +sistema de ficheros y cuando usar secciones que se apliquen sobre el +espacio web es bastante fácil. Cuando se trata de directivas que +se aplican a objetos que residen en el sistema de ficheros, siempre se +deben usar <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> o <code class="directive"><a href="./mod/core.html#files"><Files></a></code>. Cuando se trata de directivas que se +aplican a objetos que no residen en el sistema de ficheros (por +ejemplo una página web generada a partir de una base de datos), +se usa <code class="directive"><a href="./mod/core.html#location"><Location></a></code>.</p> + +<p>Es importante no usar nunca <code class="directive"><a href="./mod/core.html#location"><Location></a></code> cuando se trata de restringir el +acceso a objetos en el sistema de ficheros. Esto se debe a que varias +URLs diferentes pueden corresponderse con una misma ubicación en +el sistema de ficheros, haciendo que la restricción pueda ser +evitada. Por ejemplo, considere la siguiente configuración:</p> + +<div class="example"><p><code> +<Location /dir/><br /> +Order allow,deny<br /> +Deny from all<br /> +</Location> +</code></p></div> + +<p>La restricción funciona si se produce una petición a +<code>http://yoursite.example.com/dir/</code>. Pero, ¿qué +ocurriría si se trata de un sistema de ficheros que no distingue +mayúsculas de minúsculas? Entonces, la restricción que +ha establecido podría evitarse fácilmente haciendo una +peticion a <code>http://yoursite.example.com/DIR/</code>. Una +sección <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> por el contrario, se aplicará +a cualquier contenido servido desde esa ubicación, +independientemente de cómo se llame. (Una excepción son los +enlaces del sistema de ficheros. El mismo directorio puede ser +colocado en más de una ubicación del sistema de ficheros +usando enlaces simbólicos. La sección <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> seguirá los +enlaces simbólicos sin resetear la ruta de fichero (resetting the +pathname). Por tanto, para conseguir el mayor nivel de seguridad, los +enlaces simbólicos deben desactivarse con la directiva <code class="directive"><a href="./mod/core.html#options">Options</a></code> correspondiente.)</p> + +<p>En el caso de que piense que nada de esto le afecta porque usa un +sistema de ficheros que distingue mayúsculas de minúsculas, +recuerde que hay muchas otras maneras de hacer corresponder +múltiples direcciones del espacio web con una misma +ubicación del sistema de ficheros. Por tanto, use las secciones +de configuración que se aplican al sistema de ficheros siempre +que sea posible. Hay, sin embargo, una excepción a esta +regla. Poner restricciones de configuración en una sección +<code><Location /></code> es completamente seguro porque estas +secciones se aplicarán a todas las peticiones independientemente +de la URL específica que se solicite.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="virtualhost" id="virtualhost">Hosts virtuales</a></h2> + +<p>El contenedor <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> agrupa directivas que se +aplicarán a hosts específicos. Esto es útil cuando se +sirven varios hosts con una misma máquina y con una +configuración diferente cada uno. Para más información, +consulte la <a href="vhosts/">documentación sobre hosts +virtuales</a>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="proxy" id="proxy">Proxy</a></h2> + +<p>Las secciones <code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code> y <code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code> aplican las directivas de +configuración que engloban solo a los sitios accedidos a +través del servidor proxy del módulo +<code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> que tengan equivalencia con la URL +especificada. Por ejemplo, la siguiente configuración +evitará que se use el servidor proxy para acceder al sitio web +<code>cnn.com</code>.</p> + +<div class="example"><p><code> +<Proxy http://cnn.com/*><br /> +Order allow,deny<br /> +Deny from all<br /> +</Proxy> +</code></p></div> +</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="whatwhere" id="whatwhere">¿Qué directivas se pueden +usar?</a></h2> + +<p>Para ver que directivas son las que se pueden usar en cada +sección de configuración, consulte el <a href="mod/directive-dict.html#Context">Context</a> de la directiva. +Todas las directivas que está permitido usar en las secciones +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> se +pueden usar también en las secciones <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, <code class="directive"><a href="./mod/core.html#files"><Files></a></code>, <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>, <code class="directive"><a href="./mod/core.html#location"><Location></a></code>, <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code>, <code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code>, y <code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code>. Sin embargo, hay algunas +excepciones:</p> + +<ul> <li>La directiva <code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> funciona en las secciones +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>.</li> + +<li>Las directivas <code class="directive"><a href="./mod/core.html#options">Options</a></code> +<code>FollowSymLinks</code> y <code>SymLinksIfOwnerMatch</code> +<code class="directive"><a href="./mod/core.html#options">Options</a></code> funcionan solo en las +secciones <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> y en los ficheros +<code>.htaccess</code>.</li> + +<li>La direcitva <code class="directive"><a href="./mod/core.html#options">Options</a></code> no puede +ser usada en secciones <code class="directive"><a href="./mod/core.html#files"><Files></a></code> y <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>.</li> +</ul> +</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="mergin" id="mergin">¿Cómo se fusionan las distintas +secciones?</a></h2> + +<p>Las secciones de configuración se aplican en un determinado +orden. Como este orden puede tener efectos significativos en como se +interpretan las directivas de configuración, es importante +entender cómo funciona este proceso.</p> + + <p>El orden de fusión es el siguiente:</p> + + <ol> + <li> <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> (excepto expresiones + regulares) y <code>.htaccess</code> simultáneamente (si el + uso de <code>.htaccess</code> está permitido, prevaleciendo + sobre <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>)</li> + + <li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code> + (y <code><Directory ~></code>)</li> + + <li><code class="directive"><a href="./mod/core.html#files"><Files></a></code> y + <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code> + simultáneamente</li> + + <li><code class="directive"><a href="./mod/core.html#location"><Location></a></code> + y <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code> + simultáneamente</li> + </ol> + + <p>Aparte de <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, cada grupo se procesa en el + orden en que aparezca en los ficheros de configuración. + <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> + (grupo 1 arriba) se procesa empezando por los componentes de la + ruta al directorio más cortos. Por ejemplo, + <code><Directory + /var/web/dir></code> se procesará antes de + <code><Directory /var/web/dir/subdir></code>. Si hay que + aplicar varias secciones <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> a un mismo directorio, se + aplican en el orden en que aparezcan en el fichero de + configuración. Las configuraciones incluidas mediante la + directiva <code class="directive"><a href="./mod/core.html#include">Include</a></code> se + tratarán como si estuvieran dentro del fichero de + configuración principal en lugar de la sección + <code class="directive"><a href="./mod/core.html#include">Include</a></code>.</p> + + <p>Las secciones incluidas dentro de secciones <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> se aplican + <em>después de</em> las correspondientes secciones fuera + de la definición del host virtual. Esto permite que la + configuración especificada para los hosts virtuales pueda + prevalecer sobre la configuración del servidor principal.</p> + + <p>Las secciones que aparecen después prevalecen sobre las + que aparecen antes.</p> + +<div class="note"><h3>Nota técnica.</h3> Previamente a la fase de + traducción de nombres (en la que se analizan los + <code>Aliases</code> y <code>DocumentRoots</code> para calcular + las correspondencias entre URLs y nombres de ficheros) se + ejecuta una secuencia + <code><Location></code>/<code><LocationMatch></code>. Los + resultados de esta secuencia se desechan después de + ejecutar la traducción. </div> + +<h3><a name="merge-examples" id="merge-examples">Algunos ejemplos</a></h3> + +<p>Abajo se muestra un ejemplo para que se vea claramente cuál es +el orden de fusión. Asumiendo que todas las secciones se aplican +a la petición, las de este ejemplo se aplicarían en el orden +A > B > C > D > E.</p> + +<div class="example"><p><code> +<Location /><br /> +E<br /> +</Location><br /> +<br /> +<Files f.html><br /> +D<br /> +</Files><br /> +<br /> +<VirtualHost *><br /> +<Directory /a/b><br /> +B<br /> +</Directory><br /> +</VirtualHost><br /> +<br /> +<DirectoryMatch "^.*b$"><br /> +C<br /> +</DirectoryMatch><br /> +<br /> +<Directory /a/b><br /> +A<br /> +</Directory><br /> +<br /> +</code></p></div> + +<p>A continuación se muestra un ejemplo más concreto. +Independientemente de las restricciones de acceso que se hayan +establecido en las secciones <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, la sección <code class="directive"><a href="./mod/core.html#location"><Location></a></code> será evaluada +al final y se permitirá acceso sin restricciones al servidor. En +otras palabras, el orden de fusión es importante, de modo que +ponga atención.</p> + +<div class="example"><p><code> +<Location /><br /> Order deny,allow<br /> Allow from all<br /> +</Location><br /> <br /> +# Esta sección <Directory> no tendrá efecto<br /> +<Directory /><br /> +Order allow,deny<br /> +Allow from all<br /> +Deny from badguy.example.com<br /> +</Directory> +</code></p></div> + + + +</div></div> +<div class="bottomlang"> +<p><span>Idiomas disponibles: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/sections.html" title="Español"> es </a> | +<a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div><div id="footer"> +<p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p></div> +</body></html>
\ No newline at end of file diff --git a/docs/manual/sections.html.ja.euc-jp b/docs/manual/sections.html.ja.euc-jp index 1f5301f542..6c564cf0a2 100644 --- a/docs/manual/sections.html.ja.euc-jp +++ b/docs/manual/sections.html.ja.euc-jp @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP ¥µ¡¼¥Ð</a> > <a href="http://httpd.apache.org/docs-project/">¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó</a> > <a href="./">¥Ð¡¼¥¸¥ç¥ó 2.0</a></div><div id="page-content"><div id="preamble"><h1>¥»¥¯¥·¥ç¥ó¤ÎÀßÄê</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/sections.html" hreflang="es" rel="alternate" title="Espa«Ðol"> es </a> | <a href="./ja/sections.html" title="Japanese"> ja </a> | <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div> @@ -455,6 +456,7 @@ Deny from badguy.example.com<br /> </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/sections.html" hreflang="es" rel="alternate" title="Espa«Ðol"> es </a> | <a href="./ja/sections.html" title="Japanese"> ja </a> | <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div><div id="footer"> diff --git a/docs/manual/sections.html.ko.euc-kr b/docs/manual/sections.html.ko.euc-kr index ea78e7cfb7..c219972c93 100644 --- a/docs/manual/sections.html.ko.euc-kr +++ b/docs/manual/sections.html.ko.euc-kr @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>¼½¼Ç ¼³Á¤</h1> <div class="toplang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/sections.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/sections.html" title="Korean"> ko </a></p> </div> @@ -411,6 +412,7 @@ Deny from badguy.example.com<br /> </div></div> <div class="bottomlang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="./es/sections.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/sections.html" title="Korean"> ko </a></p> </div><div id="footer"> diff --git a/docs/manual/sections.xml.es b/docs/manual/sections.xml.es new file mode 100644 index 0000000000..94cae8e9bc --- /dev/null +++ b/docs/manual/sections.xml.es @@ -0,0 +1,541 @@ +<?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 2004-2005 The Apache Software Foundation or it 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="sections.xml.meta"> + +<title>Secciones de configuración</title> + +<summary> <p> Las directivas presentes en los <a +href="configuring.html">ficheros de configuración</a> pueden ser +de aplicación para todo el servidor, o puede que su +aplicación se limite solamente a determinados directorios, +ficheros, hosts, o URLs. Este documento explica cómo usar las +secciones de configuración y los ficheros <code>.htaccess</code> +para modificar el ámbito de aplicación de las directivas de +configuración.</p> </summary> + +<section id="types"><title>Tipos de secciones de +configuración</title> + +<related> +<modulelist> +<module>core</module> +<module>mod_proxy</module> +</modulelist> +<directivelist> +<directive type="section" module="core">Directory</directive> +<directive type="section" module="core">DirectoryMatch</directive> +<directive type="section" module="core">Files</directive> +<directive type="section" module="core">FilesMatch</directive> +<directive type="section" module="core">IfDefine</directive> +<directive type="section" module="core">IfModule</directive> +<directive type="section" module="core">Location</directive> +<directive type="section" module="core">LocationMatch</directive> +<directive type="section" module="mod_proxy">Proxy</directive> +<directive type="section" module="mod_proxy">ProxyMatch</directive> +<directive type="section" module="core">VirtualHost</directive> +</directivelist> +</related> + +<p>Exiten dos tipos básicos de secciones de +configuración. Por un lado, la mayoría de las secciones de +configuración se evalúan para cada petición que se +recibe y se aplican las directivas que se incluyen en las distintas +secciones solamente a las peticiones que se adecúan a +determinadas características. Por otro lado, las secciones de tipo +<directive type="section" module="core">IfDefine</directive> e +<directive type="section" module="core">IfModule</directive>, se +evalúan solamente al inicio o reinicio del servidor. Si al +iniciar el servidor las condiciones son las adecuadas, las directivas +que incluyen estas secciones se aplicarán a todas las peticiones +que se reciban. Es caso contrario, esas directivas que incluyen se +ignoran completamente.</p> + +<p>Las secciones <directive type="section" +module="core">IfDefine</directive> incluyen directivas que se +aplicarán solamente si se pasa un determinado parámetro por +línea de comandos al ejecutar <program>httpd</program>. Por +ejemplo, con la siguiente configuración, todas las peticiones +serán redireccionadas a otro sitio web solamente si el servidor +se inició usando <code>httpd -DClosedForNow</code>:</p> + +<example> +<IfDefine ClosedForNow><br /> +Redirect / http://otherserver.example.com/<br /> +</IfDefine> +</example> + +<p>La sección <directive type="section" +module="core">IfModule</directive> es muy parecida. La diferencia +respecto a <directive type="section" +module="core">IfDefine</directive> está en que incluye directivas +que se aplicarán solamente si un determinado módulo en +particular está disponible en el servidor. El módulo debe +estar compilado estáticamente en el servidor, o si está +compilado de forma dinámica ha de ponerse antes una línea +<directive module="mod_so">LoadModule</directive> en el fichero de +configuración. Esta directiva debe usarla solamente si necesita +que su fichero de configuración funcione estén o no +instalados determinados módulos. No debe usarla para incluir +directivas que quiera que se apliquen siempre, porque puede suprimir +mensajes de error que pueden ser de mucha utilidad para detectar la +falta de algún módulo.</p> + +<p>En el siguiente ejemplo, la directiva <directive +module="mod_mime_magic">MimeMagicFiles</directive> se aplicará +solamente si el módulo <module>mod_mime_magic</module> está +disponible.</p> + +<example> +<IfModule mod_mime_magic.c><br /> +MimeMagicFile conf/magic<br /> +</IfModule> +</example> + +<p>Tanto <directive type="section" module="core">IfDefine</directive> +como <directive type="section" module="core">IfModule</directive> +pueder usarse con condiones negativas anteponiendo al test el +carácter "!". Estas secciones también pueden anidarse para +establecer restricciones más complejas.</p> + +</section> + +<section id="file-and-web"><title>Sistemas de ficheros y espacio +web</title> + +<p>Las secciones de configuración usadas con más frecuencia +son las que cambian la configuración de áreas del sistema de +ficheros o del espacio web. En primer lugar, es importante comprender +la diferencia que existe entre estos dos conceptos. El sistema de +ficheros es la visión de sus discos desde el punto de vista del +sistema operativo. Por ejemplo, en una instalación estándar, +Apache estará en <code>/usr/local/apache2</code> en un sistema +Unix o en <code>"c:/Program Files/Apache Group/Apache2"</code> en un +sistema Windows. (Tenga en cuenta que con Apache debe usar siempre +barras /, incluso en Windows.) Por el contrario, el espacio web lo +que presenta el servidor web y que visualiza el cliente. De manera que +la ruta <code>/dir/</code> en el espacio web se corresponde con la +ruta <code>/usr/local/apache2/htdocs/dir/</code> en el sistema de +ficheros de una instalación estándar en Unix. El espacio +web no tiene que tener correspondencia directa con el sistema de +ficheros, porque las páginas web pueden generarse de forma +dinámica a partir de bases de datos o partiendo de otras +ubicaciones.</p> + +<section id="filesystem"><title>Secciones relacionadas con el sistema +de ficheros</title> + +<p>Las secciones <directive type="section" +module="core">Directory</directive> y <directive type="section" +module="core">Files</directive>, junto con sus contrapartes que usan +expresiones regulares, aplican sus directivas a áreas del sistema de +ficheros. Las directivas incluidas en una sección <directive +type="section" module="core">Directory</directive> se aplican al +directorio del sistema de ficheros especificado y a sus +subdirectorios. El mismo resultado puede obtenerse usando <a +href="howto/htaccess.html">ficheros .htaccess</a>. Por ejemplo, en la +siguiente configuración, se activarán los índices de +directorio para el directorio <code>/var/web/dir1</code> y sus +subdirectorios.</p> + +<example> +<Directory /var/web/dir1><br /> +Options +Indexes<br /> +</Directory> +</example> + +<p>Las directivas incluidas en una sección <directive +type="section" module="core">Files</directive> se aplicarán a +cualquier fichero cuyo nombre se especifique, sin tener en cuenta en +que directorio se encuentra. Por ejemplo, las siguientes directivas de +configuración, cuando se colocan en la sección principal del +fichero de configuración, deniegan el acceso a cualquier fichero +llamado <code>private.html</code> sin tener en cuenta de donde se +encuentre.</p> + +<example> +<Files private.html><br /> +Order allow,deny<br /> +Deny from all<br /> +</Files> +</example> + +<p>Para referirse a archivos que se encuentren en un determinado lugar +del sistema de ficheros, se pueden combinar las secciones <directive +type="section" module="core">Files</directive> y <directive +type="section" module="core">Directory</directive>. Por ejemplo, la +siguiente configuración denegará el acceso a +<code>/var/web/dir1/private.html</code>, +<code>/var/web/dir1/subdir2/private.html</code>, +<code>/var/web/dir1/subdir3/private.html</code>, y cualquier otra +aparición de <code>private.html</code> que se encuentre en +<code>/var/web/dir1/</code> o cualquiera de sus subdirectorios.</p> + +<example> +<Directory /var/web/dir1><br /> +<Files private.html><br /> +Order allow,deny<br /> +Deny from all<br /> +</Files><br /> +</Directory> +</example> +</section> + +<section id="webspace"><title>Secciones relacionadas con el espacio +web</title> + +<p>La sección <directive type="section" + module="core">Location</directive> y su contraparte que usa + expresiones regulares, cambian + la configuración para el contenido del espacio web. Por ejemplo, + la siguiente configuración evita que se acceda a cualquier URL + que empiece por /private. En concreto, se aplicará a + peticiones que vayan dirigidas a + <code>http://yoursite.example.com/private</code>, + <code>http://yoursite.example.com/private123</code>, y a + <code>http://yoursite.example.com/private/dir/file.html</code> + así como + también a cualquier otra petición que comience por + <code>/private</code>.</p> + +<example> +<Location /private><br /> +Order Allow,Deny<br /> +Deny from all<br /> +</Location> +</example> + +<p>La sección <directive type="section" +module="core">Location</directive> puede no tener nada que ver con el +sistema de ficheros. Por ejemplo, el siguiente ejemplo muestra como +asociar una determinada URL a un handler interno de Apache del +módulo <module>mod_status</module>. No tiene por qué +existir ningún fichero <code>server-status</code> en el sistema +de ficheros.</p> + +<example> +<Location /server-status><br /> +SetHandler server-status<br /> +</Location> +</example> +</section> + +<section id="wildcards"><title>Caracteres comodín y expresiones +regulares</title> + +<p>Las secciones <directive type="section" +module="core">Directory</directive>, <directive type="section" +module="core">Files</directive>, y <directive type="section" +module="core">Location</directive> pueden usar caracteres comodín +del tipo <code>fnmatch</code> de la librería estándar de C. +El carácter "*" equivale a cualquier secuencia de caracteres, "?" +equivale a cualquier carácter individual, y "[<em>seq</em>]" +equivale a cualquier carácter en <em>seq</em>. Ningún +carácter comodín equivale a"/", que debe siempre +especificarse explícitamente.</p> + +<p>Si necesita un sistema de equivalencias más flexible, cada +sección tiene una contraparte que acepta <a +href="glossary.html#regex">expresiones regulares</a> compatibles con +Perl: <directive type="section" +module="core">DirectoryMatch</directive>, <directive type="section" +module="core">FilesMatch</directive>, y <directive type="section" +module="core">LocationMatch</directive>. Consulte la sección +sobre la fusión de secciones de configuración para ver la +forma en que las secciones expresiones regulares cambian el modo en +que se aplican las directivas.</p> + +<p>Abajo se muestra un ejemplo en el que una sección de +configuración que usa caracteres comodín en lugar de una +expresión regular modifica la configuración de todos los +directorios de usuario:</p> + +<example> +<Directory /home/*/public_html><br /> +Options Indexes<br /> +</Directory> +</example> + +<p>Usando expresiones regulares, podemos denegar el acceso a muchos +tipos ficheros de imágenes de una sola vez:</p> + +<example> +<FilesMatch \.(?i:gif|jpe?g|png)$><br /> +Order allow,deny<br /> +Deny from all<br /> +</FilesMatch> +</example> + +</section> + +<section id="whichwhen"><title>Qué usar en cada momento</title> + +<p>Decidir cuando hay que usar secciones que se apliquen sobre el +sistema de ficheros y cuando usar secciones que se apliquen sobre el +espacio web es bastante fácil. Cuando se trata de directivas que +se aplican a objetos que residen en el sistema de ficheros, siempre se +deben usar <directive type="section" +module="core">Directory</directive> o <directive type="section" +module="core">Files</directive>. Cuando se trata de directivas que se +aplican a objetos que no residen en el sistema de ficheros (por +ejemplo una página web generada a partir de una base de datos), +se usa <directive type="section" +module="core">Location</directive>.</p> + +<p>Es importante no usar nunca <directive type="section" +module="core">Location</directive> cuando se trata de restringir el +acceso a objetos en el sistema de ficheros. Esto se debe a que varias +URLs diferentes pueden corresponderse con una misma ubicación en +el sistema de ficheros, haciendo que la restricción pueda ser +evitada. Por ejemplo, considere la siguiente configuración:</p> + +<example> +<Location /dir/><br /> +Order allow,deny<br /> +Deny from all<br /> +</Location> +</example> + +<p>La restricción funciona si se produce una petición a +<code>http://yoursite.example.com/dir/</code>. Pero, ¿qué +ocurriría si se trata de un sistema de ficheros que no distingue +mayúsculas de minúsculas? Entonces, la restricción que +ha establecido podría evitarse fácilmente haciendo una +peticion a <code>http://yoursite.example.com/DIR/</code>. Una +sección <directive type="section" +module="core">Directory</directive> por el contrario, se aplicará +a cualquier contenido servido desde esa ubicación, +independientemente de cómo se llame. (Una excepción son los +enlaces del sistema de ficheros. El mismo directorio puede ser +colocado en más de una ubicación del sistema de ficheros +usando enlaces simbólicos. La sección <directive +type="section" module="core">Directory</directive> seguirá los +enlaces simbólicos sin resetear la ruta de fichero (resetting the +pathname). Por tanto, para conseguir el mayor nivel de seguridad, los +enlaces simbólicos deben desactivarse con la directiva <directive +module="core">Options</directive> correspondiente.)</p> + +<p>En el caso de que piense que nada de esto le afecta porque usa un +sistema de ficheros que distingue mayúsculas de minúsculas, +recuerde que hay muchas otras maneras de hacer corresponder +múltiples direcciones del espacio web con una misma +ubicación del sistema de ficheros. Por tanto, use las secciones +de configuración que se aplican al sistema de ficheros siempre +que sea posible. Hay, sin embargo, una excepción a esta +regla. Poner restricciones de configuración en una sección +<code><Location /></code> es completamente seguro porque estas +secciones se aplicarán a todas las peticiones independientemente +de la URL específica que se solicite.</p> </section> + +</section> + +<section id="virtualhost"><title>Hosts virtuales</title> + +<p>El contenedor <directive type="section" +module="core">VirtualHost</directive> agrupa directivas que se +aplicarán a hosts específicos. Esto es útil cuando se +sirven varios hosts con una misma máquina y con una +configuración diferente cada uno. Para más información, +consulte la <a href="vhosts/">documentación sobre hosts +virtuales</a>.</p> </section> + +<section id="proxy"><title>Proxy</title> + +<p>Las secciones <directive type="section" +module="mod_proxy">Proxy</directive> y <directive type="section" +module="mod_proxy">ProxyMatch</directive> aplican las directivas de +configuración que engloban solo a los sitios accedidos a +través del servidor proxy del módulo +<module>mod_proxy</module> que tengan equivalencia con la URL +especificada. Por ejemplo, la siguiente configuración +evitará que se use el servidor proxy para acceder al sitio web +<code>cnn.com</code>.</p> + +<example> +<Proxy http://cnn.com/*><br /> +Order allow,deny<br /> +Deny from all<br /> +</Proxy> +</example> +</section> + +<section id="whatwhere"><title>¿Qué directivas se pueden +usar?</title> + +<p>Para ver que directivas son las que se pueden usar en cada +sección de configuración, consulte el <a +href="mod/directive-dict.html#Context">Context</a> de la directiva. +Todas las directivas que está permitido usar en las secciones +<directive type="section" module="core">Directory</directive> se +pueden usar también en las secciones <directive type="section" +module="core">DirectoryMatch</directive>, <directive type="section" +module="core">Files</directive>, <directive type="section" +module="core">FilesMatch</directive>, <directive type="section" +module="core">Location</directive>, <directive type="section" +module="core">LocationMatch</directive>, <directive type="section" +module="mod_proxy">Proxy</directive>, y <directive type="section" +module="mod_proxy">ProxyMatch</directive>. Sin embargo, hay algunas +excepciones:</p> + +<ul> <li>La directiva <directive +module="core">AllowOverride</directive> funciona en las secciones +<directive type="section" module="core">Directory</directive>.</li> + +<li>Las directivas <directive module="core">Options</directive> +<code>FollowSymLinks</code> y <code>SymLinksIfOwnerMatch</code> +<directive module="core">Options</directive> funcionan solo en las +secciones <directive type="section" +module="core">Directory</directive> y en los ficheros +<code>.htaccess</code>.</li> + +<li>La direcitva <directive module="core">Options</directive> no puede +ser usada en secciones <directive type="section" +module="core">Files</directive> y <directive type="section" +module="core">FilesMatch</directive>.</li> +</ul> +</section> + +<section id="mergin"><title>¿Cómo se fusionan las distintas +secciones?</title> + +<p>Las secciones de configuración se aplican en un determinado +orden. Como este orden puede tener efectos significativos en como se +interpretan las directivas de configuración, es importante +entender cómo funciona este proceso.</p> + + <p>El orden de fusión es el siguiente:</p> + + <ol> + <li> <directive type="section" + module="core">Directory</directive> (excepto expresiones + regulares) y <code>.htaccess</code> simultáneamente (si el + uso de <code>.htaccess</code> está permitido, prevaleciendo + sobre <directive type="section" + module="core">Directory</directive>)</li> + + <li><directive type="section" module="core">DirectoryMatch</directive> + (y <code><Directory ~></code>)</li> + + <li><directive type="section" module="core">Files</directive> y + <directive type="section" module="core">FilesMatch</directive> + simultáneamente</li> + + <li><directive type="section" module="core">Location</directive> + y <directive type="section" + module="core">LocationMatch</directive> + simultáneamente</li> + </ol> + + <p>Aparte de <directive type="section" + module="core">Directory</directive>, cada grupo se procesa en el + orden en que aparezca en los ficheros de configuración. + <directive type="section" module="core">Directory</directive> + (grupo 1 arriba) se procesa empezando por los componentes de la + ruta al directorio más cortos. Por ejemplo, + <code><Directory + /var/web/dir></code> se procesará antes de + <code><Directory /var/web/dir/subdir></code>. Si hay que + aplicar varias secciones <directive type="section" + module="core">Directory</directive> a un mismo directorio, se + aplican en el orden en que aparezcan en el fichero de + configuración. Las configuraciones incluidas mediante la + directiva <directive module="core">Include</directive> se + tratarán como si estuvieran dentro del fichero de + configuración principal en lugar de la sección + <directive module="core">Include</directive>.</p> + + <p>Las secciones incluidas dentro de secciones <directive + type="section" module="core">VirtualHost</directive> se aplican + <em>después de</em> las correspondientes secciones fuera + de la definición del host virtual. Esto permite que la + configuración especificada para los hosts virtuales pueda + prevalecer sobre la configuración del servidor principal.</p> + + <p>Las secciones que aparecen después prevalecen sobre las + que aparecen antes.</p> + +<note><title>Nota técnica.</title> Previamente a la fase de + traducción de nombres (en la que se analizan los + <code>Aliases</code> y <code>DocumentRoots</code> para calcular + las correspondencias entre URLs y nombres de ficheros) se + ejecuta una secuencia + <code><Location></code>/<code><LocationMatch></code>. Los + resultados de esta secuencia se desechan después de + ejecutar la traducción. </note> + +<section id="merge-examples"><title>Algunos ejemplos</title> + +<p>Abajo se muestra un ejemplo para que se vea claramente cuál es +el orden de fusión. Asumiendo que todas las secciones se aplican +a la petición, las de este ejemplo se aplicarían en el orden +A > B > C > D > E.</p> + +<example> +<Location /><br /> +E<br /> +</Location><br /> +<br /> +<Files f.html><br /> +D<br /> +</Files><br /> +<br /> +<VirtualHost *><br /> +<Directory /a/b><br /> +B<br /> +</Directory><br /> +</VirtualHost><br /> +<br /> +<DirectoryMatch "^.*b$"><br /> +C<br /> +</DirectoryMatch><br /> +<br /> +<Directory /a/b><br /> +A<br /> +</Directory><br /> +<br /> +</example> + +<p>A continuación se muestra un ejemplo más concreto. +Independientemente de las restricciones de acceso que se hayan +establecido en las secciones <directive module="core" +type="section">Directory</directive>, la sección <directive +module="core" type="section">Location</directive> será evaluada +al final y se permitirá acceso sin restricciones al servidor. En +otras palabras, el orden de fusión es importante, de modo que +ponga atención.</p> + +<example> +<Location /><br /> Order deny,allow<br /> Allow from all<br /> +</Location><br /> <br /> +# Esta sección <Directory> no tendrá efecto<br /> +<Directory /><br /> +Order allow,deny<br /> +Allow from all<br /> +Deny from badguy.example.com<br /> +</Directory> +</example> + +</section> + +</section> +</manualpage> + diff --git a/docs/manual/sections.xml.meta b/docs/manual/sections.xml.meta index b372be7151..9db17d8f96 100644 --- a/docs/manual/sections.xml.meta +++ b/docs/manual/sections.xml.meta @@ -7,6 +7,7 @@ <variants> <variant>en</variant> + <variant>es</variant> <variant outdated="yes">ja</variant> <variant outdated="yes">ko</variant> </variants> diff --git a/modules/mappers/mod_userdir.c b/modules/mappers/mod_userdir.c index 834c25a2c8..c5ae63b8ee 100644 --- a/modules/mappers/mod_userdir.c +++ b/modules/mappers/mod_userdir.c @@ -330,7 +330,7 @@ static ap_unix_identity_t *get_suexec_id_doer(const request_rec *r) return NULL; } - if ((ugid = apr_palloc(r->pool, sizeof(ap_unix_identity_t *))) == NULL) { + if ((ugid = apr_palloc(r->pool, sizeof(*ugid))) == NULL) { return NULL; } diff --git a/modules/ssl/ssl_engine_kernel.c b/modules/ssl/ssl_engine_kernel.c index 48da740504..268079bd5c 100644 --- a/modules/ssl/ssl_engine_kernel.c +++ b/modules/ssl/ssl_engine_kernel.c @@ -1398,7 +1398,7 @@ int ssl_callback_SSLVerify_CRL(int ok, X509_STORE_CTX *ctx, conn_rec *c) BIO_printf(bio, ", nextUpdate: "); ASN1_UTCTIME_print(bio, X509_CRL_get_nextUpdate(crl)); - n = BIO_read(bio, buff, sizeof(buff)); + n = BIO_read(bio, buff, sizeof(buff) - 1); buff[n] = '\0'; BIO_free(bio); |