]> granicus.if.org Git - apache/commitdiff
httpdunit: merge to trunk from feature branch
authorJacob Champion <jchampion@apache.org>
Tue, 20 Jun 2017 23:42:12 +0000 (23:42 +0000)
committerJacob Champion <jchampion@apache.org>
Tue, 20 Jun 2017 23:42:12 +0000 (23:42 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799378 13f79535-47bb-0310-9956-ffa450edef68

60 files changed:
CHANGES
docs/manual/index.html.es
docs/manual/index.xml.es
docs/manual/index.xml.meta
docs/manual/misc/security_tips.html.en
docs/manual/misc/security_tips.html.fr
docs/manual/misc/security_tips.html.ko.euc-kr
docs/manual/misc/security_tips.html.tr.utf8
docs/manual/mod/allmodules.xml.es
docs/manual/mod/core.html.de
docs/manual/mod/core.html.es
docs/manual/mod/core.html.fr
docs/manual/mod/core.html.ja.utf8
docs/manual/mod/core.xml.de
docs/manual/mod/core.xml.es
docs/manual/mod/core.xml.fr
docs/manual/mod/core.xml.ja
docs/manual/mod/core.xml.tr
docs/manual/mod/index.html.es
docs/manual/mod/mod_access_compat.html
docs/manual/mod/mod_access_compat.html.en
docs/manual/mod/mod_access_compat.html.es [new file with mode: 0644]
docs/manual/mod/mod_access_compat.html.fr
docs/manual/mod/mod_access_compat.html.ja.utf8
docs/manual/mod/mod_access_compat.xml.es [new file with mode: 0644]
docs/manual/mod/mod_access_compat.xml.meta
docs/manual/mod/mod_actions.html
docs/manual/mod/mod_actions.html.de
docs/manual/mod/mod_actions.html.en
docs/manual/mod/mod_actions.html.es [new file with mode: 0644]
docs/manual/mod/mod_actions.html.fr
docs/manual/mod/mod_actions.html.ja.utf8
docs/manual/mod/mod_actions.html.ko.euc-kr
docs/manual/mod/mod_actions.xml.es [new file with mode: 0644]
docs/manual/mod/mod_actions.xml.meta
docs/manual/mod/mod_authz_dbd.html.fr
docs/manual/mod/mod_authz_dbd.xml
docs/manual/mod/mod_authz_dbd.xml.fr
docs/manual/mod/mod_rewrite.xml
docs/manual/mod/quickreference.html.es
docs/manual/vhosts/name-based.xml.fr
include/ap_mmn.h
include/http_protocol.h
modules/generators/mod_status.c
modules/http/mod_mime.c
modules/http2/config2.m4
modules/http2/h2_mplx.c
modules/http2/h2_stream.h
modules/http2/h2_version.h
modules/mappers/mod_rewrite.c
modules/proxy/mod_proxy.c
modules/proxy/mod_proxy_fcgi.c
modules/proxy/mod_proxy_wstunnel.c
modules/ssl/ssl_engine_io.c
modules/ssl/ssl_util_stapling.c
server/core.c
server/protocol.c
server/request.c
server/util.c
support/ab.c

diff --git a/CHANGES b/CHANGES
index 6eb0a52142d963658ae6e0034ad78262cc96acb8..20972870d3f227fd0b2a17f8ef2c927c1a9eaeb5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,19 +1,17 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
-  *) mod_env: when processing a 'SetEnv' directive, warn if the environment
-     variable name includes a '='. It is likely a configuration error.
-     PR 60249 [Christophe Jaillet]
+  *) mod_rewrite: Add 'RewriteOptions LongURLOptimization' to free memory
+     from each set of unmatched rewrite conditions.
+     [Eric Covener]
 
-  *) Evaluate nested If/ElseIf/Else configuration blocks.
-     [Luca Toscano, Jacob Champion]
+  *) Allow the argument to <IfFile>, <IfDefine>, <IfSection>, <IfDirective>, 
+     and <IfModule> to be quoted.  This is primarily for the benefit of
+     <IfFile>. [Eric Covener]
 
   *) Introduce request taint checking framework to prevent privilege
      hijacking through .htaccess. [Nick Kew]
 
-  *) mod_proxy_wstunnel: Add "upgrade" parameter to allow upgrade to other
-     protocols.  [Jean-Frederic Clere]
-
   *) core: Disallow multiple Listen on the same IP:port when listener buckets
      are configured (ListenCoresBucketsRatio > 0), consistently with the single
      bucket case (default), thus avoiding the leak of the corresponding socket
@@ -24,42 +22,17 @@ Changes with Apache 2.5.0
   *) mod_syslog: Support use of optional "tag" in syslog entries.
      PR 60525. [Ben Rubson <ben.rubson gmail.com>, Jim Jagielski]
 
-  *) MPMs unix: Place signals handlers and helpers out of DSOs to avoid
-     a possible crash if a signal is caught during (graceful) restart.
-     PR 60487.  [Yann Ylavic]
-  
-  *) mod_proxy: Allow the per-request environment variable "no-proxy" to
-     be used as an alternative to ProxyPass /path !. This is primarily
-     to set exceptions for ProxyPass specified in <Location> context.
-     Use SetEnvIf, not SetEnv. [Eric Covener]
-
   *) When using mod_status with the Event MPM, report the number of requests
      associated with an active connection in the "ACC" field. Previously
      zero was always reported with this MPM.  PR60647. [Eric Covener]
 
   *) mod_proxy_hcheck: Don't validate timed out responses.  [Yann Ylavic]
 
-  *) mod_proxy_fcgi: Return to 2.4.20-and-earlier behavior of leaving
-     a "proxy:fcgi://" prefix in the SCRIPT_FILENAME environment variable by
-     default.  Add ProxyFCGIBackendType to allow the type of backend to be
-     specified so these kinds of fixups can be restored without impacting
-     FPM. PR60576 [Eric Covener, Jim Jagielski]
-
-  *) core: EBCDIC fixes for interim responses with additional headers.
-     [Eric Covener]
-
   *) mod_remoteip: Add support for PROXY protocol (code donated by Cloudzilla).
      Add ability for PROXY protocol processing to be optional to donated code.
      See also: http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
      [Cloudzilla/roadrunner2@GitHub, Jim Jagielski, Daniel Ruggeri]
 
-  *) mod_rewrite: When a substitution is a fully qualified URL, and the 
-     scheme/host/port matches the current virtual host, stop interpreting the 
-     path component as a local path just because the first component of the 
-     path exists in the filesystem.  Adds RewriteOption "LegacyPrefixDocRoot" 
-     to revert to previous behavior. PR60009.
-     [Hank Ibell <hwibell gmail.com>]
   *) mod_remoteip: When overriding the useragent address from X-Forwarded-For,
      zero out what had been initialized as the connection-level port.  PR59931.
      [Hank Ibell <hwibell gmail.com>]
@@ -70,9 +43,6 @@ Changes with Apache 2.5.0
   *) mod_proxy_protocol: Add server-side, front-end support for PROXY PROTOCOL
      (http://blog.haproxy.com/haproxy/proxy-protocol/).  [roadrunner2]
      
-  *) mod_proxy_fcgi: Return HTTP 504 rather than 503 in case of proxy timeout.
-     [Luca Toscano]
-
   *) http: Allow unknown response status' lines returned in the form of
      "HTTP/x.x xxx Status xxx".  [Yann Ylavic]
 
index 4a81654d40ed6d5818695f1441b97c7b0441b673..127131017b99f467d1ffeb3613591ae56385a297 100644 (file)
@@ -7,8 +7,8 @@
               This file is generated from xml source: DO NOT EDIT
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       -->
-<title>Apache HTTP Server Versión 2.5
-Documentación - Servidor HTTP Apache Versión 2.5</title>
+<title>Apache HTTP Server Versi&#243;n 2.5
+Documentaci&#243;n - Servidor HTTP Apache Versi&#243;n 2.5</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 rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
@@ -18,84 +18,81 @@ Documentaci
 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
 <body id="index-page">
 <div id="page-header">
-<p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa del sitio web</a></p>
-<p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
+<p class="menu"><a href="./mod/">M&#243;dulos</a> | <a href="./mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa del sitio web</a></p>
+<p class="apache">Versi&#243;n 2.5 del Servidor HTTP Apache</p>
 <img alt="" src="./images/feather.png" /></div>
 <div class="up"><a href="http://httpd.apache.org/docs-project/"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
 <div id="path">
-<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentación</a></div>
-<div id="page-content"><h1>Apache HTTP Server Versión 2.5
-Documentación</h1>
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentaci&#243;n</a></div>
+<div id="page-content"><h1>Apache HTTP Server Versi&#243;n 2.5
+Documentaci&#243;n</h1>
 <div class="toplang">
 <p><span>Idiomas disponibles: </span><a href="./da/" hreflang="da" rel="alternate" title="Dansk">&nbsp;da&nbsp;</a> |
 <a href="./de/" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="./en/" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="./es/" title="Español">&nbsp;es&nbsp;</a> |
-<a href="./fr/" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
+<a href="./es/" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
+<a href="./fr/" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
 <a href="./ja/" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="./ko/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Português (Brasil)">&nbsp;pt-br&nbsp;</a> |
-<a href="./tr/" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a> |
+<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a> |
+<a href="./tr/" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a> |
 <a href="./zh-cn/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</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>
-<form method="get" action="http://www.google.com/search"><p><input name="as_q" value="" type="text" /> <input value="Buscar en Google" type="submit" /><input value="10" name="num" type="hidden" /><input value="es" name="hl" type="hidden" /><input value="ISO-8859-1" name="ie" type="hidden" /><input value="Google Search" name="btnG" type="hidden" /><input name="as_epq" value="Versión 2.5" type="hidden" /><input name="as_oq" value="" type="hidden" /><input name="as_eq" value="&quot;List-Post&quot;" type="hidden" /><input value="" name="lr" type="hidden" /><input value="i" name="as_ft" type="hidden" /><input value="" name="as_filetype" type="hidden" /><input value="all" name="as_qdr" type="hidden" /><input value="any" name="as_occt" type="hidden" /><input value="i" name="as_dt" type="hidden" /><input value="httpd.apache.org" name="as_sitesearch" type="hidden" /><input value="off" name="safe" type="hidden" /></p></form>
-<table id="indextable"><tr><td class="col1"><div class="category"><h2><a name="release" id="release">Notas de la versión</a></h2>
+<form method="get" action="http://www.google.com/search"><p><input name="as_q" value="" type="text" /> <input value="Buscar en Google" type="submit" /><input value="10" name="num" type="hidden" /><input value="es" name="hl" type="hidden" /><input value="ISO-8859-1" name="ie" type="hidden" /><input value="Google Search" name="btnG" type="hidden" /><input name="as_epq" value="Versi&#243;n 2.5" type="hidden" /><input name="as_oq" value="" type="hidden" /><input name="as_eq" value="&quot;List-Post&quot;" type="hidden" /><input value="" name="lr" type="hidden" /><input value="i" name="as_ft" type="hidden" /><input value="" name="as_filetype" type="hidden" /><input value="all" name="as_qdr" type="hidden" /><input value="any" name="as_occt" type="hidden" /><input value="i" name="as_dt" type="hidden" /><input value="httpd.apache.org" name="as_sitesearch" type="hidden" /><input value="off" name="safe" type="hidden" /></p></form>
+<table id="indextable"><tr><td class="col1"><div class="category"><h2><a name="release" id="release">Notas de la versi&#243;n</a></h2>
 <ul><li><a href="new_features_2_4.html">Nuevas funcionalidades en Apache 2.3/2.4</a></li>
 <li><a href="new_features_2_2.html">Nuevas funcionalidades en Apache 2.1/2.2</a></li>
 <li><a href="new_features_2_0.html">Nuevas funcionalidades en Apache 2.0</a></li>
-<li><a href="upgrading.html">Actualizar a la versión 2.4 desde la 2.2</a></li>
+<li><a href="upgrading.html">Actualizar a la versi&#243;n 2.4 desde la 2.2</a></li>
 <li><a href="license.html">Licencia Apache </a></li>
 </ul>
 </div><div class="category"><h2><a name="manual" id="manual">Manual de Referencia</a></h2>
 <ul><li><a href="install.html">Compilar e Instalar</a></li>
 <li><a href="invoking.html">Ejecutando Apache</a></li>
 <li><a href="stopping.html">Parada y Reinicio de Apache</a></li>
-<li><a href="mod/quickreference.html">Directivas de configuración en tiempo de ejecución</a></li>
-<li><a href="mod/">Módulos</a></li>
-<li><a href="mpm.html">Módulos de Procesamiento Múltiple (MPM)</a></li>
+<li><a href="mod/quickreference.html">Directivas de configuraci&#243;n en tiempo de ejecuci&#243;n</a></li>
+<li><a href="mod/">M&#243;dulos</a></li>
+<li><a href="mpm.html">M&#243;dulos de Procesamiento M&#250;ltiple (MPM)</a></li>
 <li><a href="filter.html">Filtros</a></li>
 <li><a href="handler.html">Handlers</a></li>
 <li><a href="expr.html">Analizador de Expresiones</a></li>
+<li><a href="mod/overrides.html">Sobreescritura de la clase &#237;ndice .htaccess</a></li>
 <li><a href="programs/">Programas de Soporte y Servidor</a></li>
 <li><a href="glossary.html">Glosario</a></li>
 </ul>
-</div></td><td><div class="category"><h2><a name="usersguide" id="usersguide">Guía de Usuario</a></h2>
+</div></td><td><div class="category"><h2><a name="usersguide" id="usersguide">Gu&#237;a de Usuario</a></h2>
 <ul><li><a href="getting-started.html">Empezando</a></li>
 <li><a href="bind.html">Enlazando Direcciones y Puertos</a></li>
-<li><a href="configuring.html">Ficheros de Configuración</a></li>
-<li><a href="sections.html">Secciones de Configuración</a></li>
-<li><a href="caching.html">Almacenamiento de Contenido en Caché</a></li>
-<li><a href="content-negotiation.html">Negociación de Contenido</a></li>
-<li><a href="dso.html">Objetos Compartidos Dinámicamente (DSO)</a></li>
+<li><a href="configuring.html">Ficheros de Configuraci&#243;n</a></li>
+<li><a href="sections.html">Secciones de Configuraci&#243;n</a></li>
+<li><a href="caching.html">Almacenamiento de Contenido en Cach&#233;</a></li>
+<li><a href="content-negotiation.html">Negociaci&#243;n de Contenido</a></li>
+<li><a href="dso.html">Objetos Compartidos Din&#225;micamente (DSO)</a></li>
 <li><a href="env.html">Variables de Entorno</a></li>
 <li><a href="logs.html">Ficheros de Log</a></li>
 <li><a href="compliance.html">Cumplimiento del Protocolo HTTP</a></li>
 <li><a href="urlmapping.html">Mapeo de URLs al Sistema de Ficheros</a></li>
-<li><a href="misc/perf-tuning.html">Optimización del Rendimiento</a></li>
+<li><a href="misc/perf-tuning.html">Optimizaci&#243;n del Rendimiento</a></li>
 <li><a href="misc/security_tips.html">Consejos de seguridad</a></li>
-<li><a href="server-wide.html">Configuración básica del Servidor</a></li>
+<li><a href="server-wide.html">Configuraci&#243;n b&#225;sica del Servidor</a></li>
 <li><a href="ssl/">Cifrado SSL/TLS</a></li>
-<li><a href="suexec.html">Ejecución de Suexec para CGI</a></li>
+<li><a href="suexec.html">Ejecuci&#243;n de Suexec para CGI</a></li>
 <li><a href="rewrite/">Reescritura de URL con mod_rewrite</a></li>
 <li><a href="vhosts/">Servidores Virtuales</a></li>
 </ul>
 </div></td><td class="col3"><div class="category"><h2><a name="howto" id="howto">How-To / Tutoriales</a></h2>
-<ul><li><a href="howto">Índice de Tutoriales </a></li>
-<li><a href="howto/auth.html">Autenticación y Autorización</a></li>
+<ul><li><a href="howto">&#205;ndice de Tutoriales </a></li>
+<li><a href="howto/auth.html">Autenticaci&#243;n y Autorizaci&#243;n</a></li>
 <li><a href="howto/access.html">Control de Acceso</a></li>
-<li><a href="howto/cgi.html">CGI: Contenido Dinámico</a></li>
+<li><a href="howto/cgi.html">CGI: Contenido Din&#225;mico</a></li>
 <li><a href="howto/htaccess.html">Ficheros .htaccess</a></li>
 <li><a href="howto/ssi.html">Inclusiones del Lado del Servidor (SSI)</a></li>
 <li><a href="howto/public_html.html">Directorios Web por Usuario
     (public_html)</a></li>
-<li><a href="howto/reverse_proxy.html">Guía de configuración de Proxy Inverso</a></li>
-<li><a href="howto/http2.html">guía HTTP/2 </a></li>
+<li><a href="howto/reverse_proxy.html">Gu&#237;a de configuraci&#243;n de Proxy Inverso</a></li>
+<li><a href="howto/http2.html">gu&#237;a HTTP/2 </a></li>
 </ul>
-</div><div class="category"><h2><a name="platform" id="platform">Notas Sobre Plataformas Específicas</a></h2>
+</div><div class="category"><h2><a name="platform" id="platform">Notas Sobre Plataformas Espec&#237;ficas</a></h2>
 <ul><li><a href="platform/windows.html">Microsoft Windows</a></li>
 <li><a href="platform/rpm.html">Sistemas Basados en RPM (Redhat / CentOS / Fedora)</a></li>
 <li><a href="platform/netware.html">Novell NetWare</a></li>
@@ -103,8 +100,8 @@ Documentaci
 </div><div class="category"><h2><a name="other" id="other">Otros Temas</a></h2>
 <ul><li><a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a></li>
 <li><a href="sitemap.html">Mapa del Sitio</a></li>
-<li><a href="developer/">Documentación para Desarrolladores</a></li>
-<li><a href="http://httpd.apache.org/docs-project/">Contribuir en la Documentación</a></li>
+<li><a href="developer/">Documentaci&#243;n para Desarrolladores</a></li>
+<li><a href="http://httpd.apache.org/docs-project/">Contribuir en la Documentaci&#243;n</a></li>
 <li><a href="misc/">Otras Notas</a></li>
 <li><a href="http://wiki.apache.org/httpd/">Wiki</a></li>
 </ul>
@@ -113,16 +110,16 @@ Documentaci
 <p><span>Idiomas disponibles: </span><a href="./da/" hreflang="da" rel="alternate" title="Dansk">&nbsp;da&nbsp;</a> |
 <a href="./de/" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="./en/" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="./es/" title="Español">&nbsp;es&nbsp;</a> |
-<a href="./fr/" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
+<a href="./es/" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
+<a href="./fr/" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
 <a href="./ja/" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="./ko/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Português (Brasil)">&nbsp;pt-br&nbsp;</a> |
-<a href="./tr/" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a> |
+<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a> |
+<a href="./tr/" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a> |
 <a href="./zh-cn/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
 </div><div id="footer">
-<p class="apache">Copyright 2017 The Apache Software Foundation.<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/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licencia bajo los t&#233;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&#243;dulos</a> | <a href="./mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
 if (typeof(prettyPrint) !== 'undefined') {
     prettyPrint();
 }
index 8071eb420bae2c1792cee685cb0645161447cca9..e73c9bad59a8e6cf5db10d624dfa98457819bb8a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE indexpage SYSTEM "./style/sitemap.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?>
-<!-- English Revision: 1780356:1793932 (outdated) -->
+<!-- English Revision: 1793932 -->
 <!-- Translated by: Luis Gil de Bernabé Pfeiffer  -->
 <!-- Reviewed by: Sergio Ramos -->
 
@@ -46,6 +46,7 @@ Documentación</title>
     <page href="filter.html">Filtros</page>
     <page href="handler.html">Handlers</page>
     <page href="expr.html">Analizador de Expresiones</page>
+    <page href="mod/overrides.html">Sobreescritura de la clase índice .htaccess</page>
     <page href="programs/">Programas de Soporte y Servidor</page>
     <page href="glossary.html">Glosario</page>
 </category>
index 4e2ec6f7e3af181a8c261bc4e2ece20e9cda38c4..d08bf0721618f09c72c83d914089547c492a4839 100644 (file)
@@ -10,7 +10,7 @@
     <variant outdated="yes">da</variant>
     <variant outdated="yes">de</variant>
     <variant>en</variant>
-    <variant outdated="yes">es</variant>
+    <variant>es</variant>
     <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
index 8ba6adb761a2614321022e8610e15caf63422464..0aee9ba475a80e44fa338a1ca85a6c568419f658 100644 (file)
@@ -24,6 +24,7 @@
 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Miscellaneous Documentation</a></div><div id="page-content"><div id="preamble"><h1>Security Tips</h1>
 <div class="toplang">
 <p><span>Available Languages: </span><a href="../en/misc/security_tips.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   </div></div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/misc/security_tips.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
index 249b75b76473eedacd7ce5bd57f98331dd266006..faefcd1936331b8f7d753bcb59bbdf11ff9f47ff 100644 (file)
@@ -24,6 +24,7 @@
 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Conseils sur la sécurité</h1>
 <div class="toplang">
 <p><span>Langues Disponibles: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   </div></div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
index 5f073e148821e39ae374a76fe575a5111f1248db..f0048c33345811e1ad4933af63504deaa13c9b4c 100644 (file)
@@ -24,6 +24,7 @@
 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Miscellaneous Documentation</a></div><div id="page-content"><div id="preamble"><h1>º¸¾È ÆÁ</h1>
 <div class="toplang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
   </div></div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
index b6e8bb0c78b44ed18cd5474156e626449d1ee6c2..05a39a235963bffb4d8ab4db091c3a5aa52717b6 100644 (file)
@@ -24,6 +24,7 @@
 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">Sürüm 2.5</a> &gt; <a href="./">Çeşitli Belgeler</a></div><div id="page-content"><div id="preamble"><h1>Güvenlik İpuçları</h1>
 <div class="toplang">
 <p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   </div></div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/misc/security_tips.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
index b09da49371fbee870fa16a71e78c70ab52f87e03..511c208feab4f06d83d487cdf7d49415d86ae2ff 100644 (file)
@@ -3,8 +3,8 @@
 
 <modulefilelist>
   <modulefile>core.xml.es</modulefile>
-  <modulefile>mod_access_compat.xml</modulefile>
-  <modulefile>mod_actions.xml</modulefile>
+  <modulefile>mod_access_compat.xml.es</modulefile>
+  <modulefile>mod_actions.xml.es</modulefile>
   <modulefile>mod_alias.xml</modulefile>
   <modulefile>mod_allowhandlers.xml</modulefile>
   <modulefile>mod_allowmethods.xml</modulefile>
index 54ac568d87305583f2635d1fce298d70aabb968b..63a3e8ba052f650cb3c6b08d3a8431aa82d151b0 100644 (file)
@@ -928,6 +928,7 @@ satisfied by a request at runtime</td></tr>
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Modul:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Kompatibilität:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>Die Dokumentation zu dieser Direktive wurde
             noch nicht übersetzt. Bitte schauen Sie in die englische
             Version.</p><h3>Siehe auch</h3>
@@ -955,6 +956,7 @@ satisfied</td></tr>
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Modul:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Kompatibilität:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>Die Dokumentation zu dieser Direktive wurde
             noch nicht übersetzt. Bitte schauen Sie in die englische
             Version.</p><h3>Siehe auch</h3>
@@ -1580,6 +1582,7 @@ satisfied by a request at runtime</td></tr>
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Modul:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Kompatibilität:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>Die Dokumentation zu dieser Direktive wurde
             noch nicht übersetzt. Bitte schauen Sie in die englische
             Version.</p><h3>Siehe auch</h3>
index 410225a495381d7549eba1052c1bc3d9e1e87adf..09c7d5a18d0cc605a5217d6a6423011b85c04cf7 100644 (file)
@@ -941,6 +941,7 @@ satisfied by a request at runtime</td></tr>
 <tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>The documentation for this directive has
             not been translated yet. Please have a look at the English
             version.</p><h3>Consulte también</h3>
@@ -968,6 +969,7 @@ satisfied</td></tr>
 <tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>The documentation for this directive has
             not been translated yet. Please have a look at the English
             version.</p><h3>Consulte también</h3>
index 6fe9d5475b35bc40b9e9c5b072e18ad5f0a901a5..26cf7aba7ace76e0f5e46af6a420f735055f2518 100644 (file)
@@ -1191,6 +1191,8 @@ requ
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les conditions imbriquées sont supportées à partir de la version
+2.4.26 du serveur HTTP Apache</td></tr>
 </table>
     <p>La section <code class="directive">&lt;Else&gt;</code> applique
     les directives qu'elle contient si et seulement si les conditions
@@ -1235,6 +1237,8 @@ alors que la condition correspondant 
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les conditions imbriquées sont supportées à partir de la version
+2.4.26 du serveur HTTP Apache</td></tr>
 </table>
     <p>La section <code class="directive">&lt;ElseIf&gt;</code> applique
     les directives qu'elle contient si et seulement si d'une part la
@@ -2338,6 +2342,8 @@ requ
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les conditions imbriquées sont supportées à partir de la version
+2.4.26 du serveur HTTP Apache</td></tr>
 </table>
     <p>La directive <code class="directive">&lt;If&gt;</code> évalue une
     expression à la volée, et applique les directives qu'elle contient
@@ -2367,15 +2373,6 @@ requ
     <p>Cette section de configuration ne peut contenir que des
     directives qui supportent le <a href="directive-dict.html#Context">contexte de répertoire</a>.</p>
 
-    <div class="note"><h3>Ce n'est pas un langage de scripting</h3>
-    Le nom de cette directive peut sembler très familier aux programmeurs et
-    administrateurs, mais il ne doit pas être confondu avec son homonyme des langages de
-    scripting. A ce titre, l'implémentation actuelle n'envisage pas la
-    possibilité d'imbriquer une section <code class="directive">&lt;If&gt;</code>
-    dans une autre (la section <code class="directive">&lt;If&gt;</code> qui se
-    trouve à l'intérieure de l'autre serait ignorée).
-    </div>
-
     <div class="warning">
     Certaines variables comme <code>CONTENT_TYPE</code> ainsi que
     d'autres en-têtes de réponse ne seront pas disponibles dans ce bloc,
index af13153f44e580ae321361637f1fbd9a878310ad..04e344754a4c833cc349812eab61d689d19dab13 100644 (file)
@@ -898,6 +898,7 @@ satisfied by a request at runtime</td></tr>
 <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>このディレクティブの解説文書は
             まだ翻訳されていません。英語版をご覧ください。
             </p><h3>参照</h3>
@@ -925,6 +926,7 @@ satisfied</td></tr>
 <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
 <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Nested conditions are evaluated in 2.4.26 and later</td></tr>
 </table><p>このディレクティブの解説文書は
             まだ翻訳されていません。英語版をご覧ください。
             </p><h3>参照</h3>
index 4a53aca30e10b85df2337bd73dc042700873dead..48dd0505905d17b807f2c0b0fca9bd6f2deb80d3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 344972:1793934 (outdated) -->
+<!-- English Revision: 344972:1796135 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 011daace5ba7d849f7b00380c62d00a7d8bea72a..bb812b9400f746818f4fd0644ae9970b29193e99 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1741251:1793934 (outdated) -->
+<!-- English Revision: 1741251:1796135 (outdated) -->
 <!-- Translated by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]apache.org -->
 <!-- Reviewed by Sergio Ramos-->
 <!--
index e0366f66cd408a42f5822cb2f108f0aa1014f207..20e33aaf445ba166c58d273cd5ed738a11c07a7d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1793934 -->
+<!-- English Revision: 1796135 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -1158,6 +1158,8 @@ requête à l'exécution</description>
 <context>directory</context><context>.htaccess</context>
 </contextlist>
 <override>All</override>
+<compatibility>Les conditions imbriquées sont supportées à partir de la version
+2.4.26 du serveur HTTP Apache</compatibility>
 
 <usage>
     <p>La section <directive type="section">Else</directive> applique
@@ -1205,6 +1207,8 @@ type="section">ElseIf</directive> précédente ne l'était pas.</description>
 <context>directory</context><context>.htaccess</context>
 </contextlist>
 <override>All</override>
+<compatibility>Les conditions imbriquées sont supportées à partir de la version
+2.4.26 du serveur HTTP Apache</compatibility>
 
 <usage>
     <p>La section <directive type="section">ElseIf</directive> applique
@@ -2391,6 +2395,8 @@ host</context>
 <context>directory</context><context>.htaccess</context>
 </contextlist>
 <override>All</override>
+<compatibility>Les conditions imbriquées sont supportées à partir de la version
+2.4.26 du serveur HTTP Apache</compatibility>
 
 <usage>
     <p>La directive <directive type="section">If</directive> évalue une
@@ -2421,15 +2427,6 @@ host</context>
     directives qui supportent le <a
     href="directive-dict.html#Context">contexte de répertoire</a>.</p>
 
-    <note><title>Ce n'est pas un langage de scripting</title>
-    Le nom de cette directive peut sembler très familier aux programmeurs et
-    administrateurs, mais il ne doit pas être confondu avec son homonyme des langages de
-    scripting. A ce titre, l'implémentation actuelle n'envisage pas la
-    possibilité d'imbriquer une section <directive type="section">If</directive>
-    dans une autre (la section <directive type="section">If</directive> qui se
-    trouve à l'intérieure de l'autre serait ignorée).
-    </note>
-
     <note type="warning">
     Certaines variables comme <code>CONTENT_TYPE</code> ainsi que
     d'autres en-têtes de réponse ne seront pas disponibles dans ce bloc,
index d5da4f73bee55fa15961023179366077149b5d03..b7342d450296680f35067755c7f77180cdf610f1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 669847:1793934 (outdated) -->
+<!-- English Revision: 669847:1796135 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 69ceb9af2f67932fc1c60a9f91b627988074bf05..4cdd391d81f63fdde4a3e9f160a6484ee6558c74 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1302855:1793934 (outdated) -->
+<!-- English Revision: 1302855:1796135 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index 337918c25b16af9367c0d99f9af09981356663d9..b8b15deef3601d1402f180a1f09abf0e42ff70e7 100644 (file)
@@ -71,9 +71,8 @@ of consuming threads only for connections with active processing</dd>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section"><h2><a id="other" name="other">Otros Módulos</a></h2>
 <p class="letters"><a href="#A">&nbsp;A&nbsp;</a> | <a href="#B">&nbsp;B&nbsp;</a> | <a href="#C">&nbsp;C&nbsp;</a> | <a href="#D">&nbsp;D&nbsp;</a> | <a href="#E">&nbsp;E&nbsp;</a> | <a href="#F">&nbsp;F&nbsp;</a> | <a href="#H">&nbsp;H&nbsp;</a> | <a href="#I">&nbsp;I&nbsp;</a> | <a href="#J">&nbsp;J&nbsp;</a> | <a href="#L">&nbsp;L&nbsp;</a> | <a href="#M">&nbsp;M&nbsp;</a> | <a href="#N">&nbsp;N&nbsp;</a> | <a href="#P">&nbsp;P&nbsp;</a> | <a href="#R">&nbsp;R&nbsp;</a> | <a href="#S">&nbsp;S&nbsp;</a> | <a href="#U">&nbsp;U&nbsp;</a> | <a href="#V">&nbsp;V&nbsp;</a> | <a href="#W">&nbsp;W&nbsp;</a> | <a href="#X">&nbsp;X&nbsp;</a></p>
-<dl><dt><a href="mod_access_compat.html" id="A" name="A">mod_access_compat</a></dt><dd>Group authorizations based on host (name or IP
-address)</dd>
-<dt><a href="mod_actions.html">mod_actions</a></dt><dd>Execute CGI scripts based on media type or request method.</dd>
+<dl><dt><a href="mod_access_compat.html" id="A" name="A">mod_access_compat</a></dt><dd>Autorizaciones de grupo basadas en el host (nombre o dirección IP)</dd>
+<dt><a href="mod_actions.html">mod_actions</a></dt><dd>Ejecuta scripts CGI basándose en el tipo de medio o método de la petición.</dd>
 <dt><a href="mod_alias.html">mod_alias</a></dt><dd>Provides for mapping different parts of the host
     filesystem in the document tree and for URL redirection</dd>
 <dt><a href="mod_allowhandlers.html">mod_allowhandlers</a></dt><dd>Easily restrict what HTTP handlers can be used on the server</dd>
index d142e4db748a358ebdec3175bb7a597095bdadc3..342ca8535f84a69f1969c2220014be1aee172bdc 100644 (file)
@@ -4,6 +4,10 @@ URI: mod_access_compat.html.en
 Content-Language: en
 Content-type: text/html; charset=ISO-8859-1
 
+URI: mod_access_compat.html.es
+Content-Language: es
+Content-type: text/html; charset=ISO-8859-1
+
 URI: mod_access_compat.html.fr
 Content-Language: fr
 Content-type: text/html; charset=ISO-8859-1
index 28ffbdb3b13ab45b83c067d9254076811e80f34c..090e27fc43b5729741703ab41d764bbea42cb89b 100644 (file)
@@ -27,6 +27,7 @@
 <div id="preamble"><h1>Apache Module mod_access_compat</h1>
 <div class="toplang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
 </div>
@@ -468,6 +469,7 @@ Satisfy Any</pre>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
diff --git a/docs/manual/mod/mod_access_compat.html.es b/docs/manual/mod/mod_access_compat.html.es
new file mode 100644 (file)
index 0000000..e698421
--- /dev/null
@@ -0,0 +1,378 @@
+<?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>
+<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+<!--
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+              This file is generated from xml source: DO NOT EDIT
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+      -->
+<title>mod_access_compat - Servidor HTTP Apache Versión 2.5</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
+<script src="../style/scripts/prettify.min.js" type="text/javascript">
+</script>
+
+<link href="../images/favicon.ico" rel="shortcut icon" /></head>
+<body>
+<div id="page-header">
+<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p>
+<p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
+<img alt="" src="../images/feather.png" /></div>
+<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentación</a> &gt; <a href="../">Versión 2.5</a> &gt; <a href="./">Módulos</a></div>
+<div id="page-content">
+<div id="preamble"><h1>Módulo Apache mod_access_compat</h1>
+<div class="toplang">
+<p><span>Idiomas disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
+<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
+</div>
+<table class="module"><tr><th><a href="module-dict.html#Description">Descripción:</a></th><td>Autorizaciones de grupo basadas en el host (nombre o dirección IP)</td></tr>
+<tr><th><a href="module-dict.html#Status">Estado:</a></th><td>Extensión</td></tr>
+<tr><th><a href="module-dict.html#ModuleIdentifier">Identificador de Módulos:</a></th><td>access_compat_module</td></tr>
+<tr><th><a href="module-dict.html#SourceFile">Fichero de Código Fuente:</a></th><td>mod_access_compat.c</td></tr>
+<tr><th><a href="module-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en el servidor Apache HTTP 2.3 como un módulo de compatibilidad con versiones previas de Apache http 2.x. Las directivas facilitadas por este módulo han quedado obsoletas en favor de la nueva refactorización de authz. Por favor vea <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></td></tr></table>
+<h3>Resumen de contenidos</h3>
+
+    <p>Las directivas facilitadas por <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> se usan en las secciones 
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, 
+    <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, y 
+    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> así como en los ficheros 
+    <code><a href="core.html#accessfilename">.htaccess</a></code> para controlar el acceso a partes específicas del servidor. El acceso se puede controlar en base al nombre de host del cliente, dirección IP u otras características de la petición del cliente, tal y como se capturan en las 
+    <a href="../env.html">variables de entorno</a>. La directivas 
+    <code class="directive"><a href="#allow">Allow</a></code> y 
+    <code class="directive"><a href="#deny">Deny</a></code> se usan para especificar qué clientes tienen acceso y cuales no al servidor, mientras que la directiva 
+    <code class="directive"><a href="#order">Order</a></code> configura el estado del acceso por defecto, y configura cómo las directivas 
+    <code class="directive"><a href="#allow">Allow</a></code> y 
+    <code class="directive"><a href="#deny">Deny</a></code> interactuan la una con la otra.</p>
+
+    <p>Se pueden configurar simultáneamente restricciones basadas en el host y autenticación con contraseña. En ese caso, la directiva <code class="directive"><a href="#satisfy">Satisfy</a></code> se usa para determinar como los dos sets de restricciones interactuan.</p>
+
+    <div class="warning"><h3>Atención</h3>
+      <p>Las directivas facilitadas por <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> han quedado obsoletas en favor de
+      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>. Mezclar directivas antiguas como 
+      <code class="directive"><a href="#order">Order</a></code>, 
+      <code class="directive"><a href="#allow">Allow</a></code> o 
+      <code class="directive"><a href="#deny">Deny</a></code> con las nuevas directivas como 
+      <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> es técnicamente posible pero no recomendable. Éste módulo se creó para dar soporte a configuraciones que solo contienen directivas antiguas para facilitar una actualización a la versión 2.4. Por favor compruebe la guía 
+      <a href="../upgrading.html">Actualizando</a> para más información.</p>
+    </div>
+
+    <p>En general, las directivas de restricción de acceso aplican a todos los métodos de acceso (<code>GET</code>, <code>PUT</code>, <code>POST</code>, etc). Éste es el comportamiento deseado en la mayor parte de los casos. Sin embargo, es posible restringir algunos métodos, dejando otros métodos sin restricción, configurando las directivas dentro de una sección <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code>.</p>
+
+    <div class="note"> <h3>Fusionando secciones de configuración</h3>
+      <p>Cuando cualquier directiva facilitada por este módulo se usa en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </div>
+
+</div>
+<div id="quickview"><h3 class="directives">Directivas</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#allow">Allow</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#deny">Deny</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#order">Order</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#satisfy">Satisfy</a></li>
+</ul>
+<h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_access_compat">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_access_compat">Report a bug</a></li></ul><h3>Consulte también</h3>
+<ul class="seealso">
+<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
+<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
+<li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
+<li><a href="#comments_section">Comentarios</a></li></ul></div>
+
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directiva</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Descripción:</a></th><td>Controla qué hosts pueden acceder a un área del servidor</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code> Allow from all|<var>host</var>|env=[!]<var>env-variable</var>
+[<var>host</var>|env=[!]<var>env-variable</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>Limit</td></tr>
+<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensión</td></tr>
+<tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>mod_access_compat</td></tr>
+</table>
+    <p>La directiva <code class="directive">Allow</code> afecta a qué hosts pueden acceder un área del servidor. El acceso puede controlarse por nombre de host, dirección IP, rango de direcciones IP, o por otras caracterísitcas de la petición del cliente capturadas en variables de entorno.</p>
+
+    <p>El primer parámetro para esta directiva siempre es <code>from</code>. Los siguientes parámetros pueden tomar tres formas diferentes. Si se especifica <code>Allow from all</code>, entonces se permite el acceso a todos los host, dependiendo de la configuración de las directivas 
+    <code class="directive"><a href="#deny">Deny</a></code> y 
+    <code class="directive"><a href="#order">Order</a></code> tal y como se indicó más arriba. Para permitir solo host específicos o grupos de host acceder al servidor, se puede especificar el <em>host</em> en cualquiera de los siguientes formatos:</p>
+
+    <dl>
+      <dt>Un nomre de dominio (parcial)</dt>
+
+      <dd>
+      <pre class="prettyprint lang-config">Allow from example.org
+Allow from .net example.edu</pre>
+
+      
+      <p>Hosts cuyo nombre coincide, o acaba en estas cadenas de caracteres se les permite acceso. Solo componentes completos pueden coincidir, así que el ejemplo de arriba coincidirá con <code>foo.example.org</code> pero no coincidirán con <code>fooexample.org</code>. Esta configuración provocará que Apache httpd haga una doble resolución de DNS en la dirección IP del cliente, independientemente de la configuración de la directiva 
+      <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code>. Hará una resolución inversa de DNS en la dirección IP para encontrar el nombre de host asociado, y entonces hará una resolución del nombre de host para asegurarse de que coincide con la dirección IP original. Solo se le dará acceso al nombre de host si ambas resoluciones de DNS son consistentes.</p></dd>
+
+      <dt>Una dirección IP completa</dt>
+
+      <dd>
+      <pre class="prettyprint lang-config">Allow from 10.1.2.3
+Allow from 192.168.1.104 192.168.1.205</pre>
+
+      <p>Se le permite acceso a una dirección IP de un host</p></dd>
+
+      <dt>Una dirección IP parcial</dt>
+
+      <dd>
+      <pre class="prettyprint lang-config">Allow from 10.1
+Allow from 10 172.20 192.168.2</pre>
+
+      <p>Los primeros 1 al 3 bytes de una dirección IP, para restricción de subred.</p></dd>
+
+      <dt>Una pareja de red/máscara de red</dt>
+
+      <dd>
+      <pre class="prettyprint lang-config">Allow from 10.1.0.0/255.255.0.0</pre>
+
+
+      <p>Una red a.b.c.d, y una máscara de red w.x.y.z. Para una restricción de subred más específica.</p></dd>
+
+      <dt>Una especificación de red/nnn CIDR</dt>
+
+      <dd>
+      <pre class="prettyprint lang-config">Allow from 10.1.0.0/16</pre>
+
+
+      <p>Similar al caso anterior, exceptuando que la máscara de red se especifica con número de bits.</p></dd>
+    </dl>
+
+    <p>Tenga en cuenta que los tres últimos ejemplos coinciden exactamente con el mismo grupo de hosts.</p>
+
+    <p>Direcciones y subredes IPv6 pueden especificarse como se describe aquí:</p>
+
+    <pre class="prettyprint lang-config">Allow from 2001:db8::a00:20ff:fea7:ccea
+Allow from 2001:db8::a00:20ff:fea7:ccea/10</pre>
+
+
+    <p>El tercer formato de parámetros para la directiva <code class="directive">Allow</code> permite que el acceso al servidor se controle mediante la existencia de 
+    <a href="../env.html">variable de entorno</a>. Cuando se especifica 
+    <code>Allow from env=<var>env-variable</var></code>, entonces se le da acceso si la variable de entorno <var>env-variable</var> existe. Cuando se especifica 
+    <code>Allow from env=!<var>env-variable</var></code>, entonces se da acceso si la variable de entorno 
+    <var>env-variable</var> no existe. El servidor facilita la configuración de variables de entorno de una manera flexible basándose en las características de la petición del cliente usando las directivas facilitadas por <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Por tanto, esta directiva se puede usar para permitir acceso basándose en tales factores como el <code>User-Agent</code> del cliente (tipo de navegador), <code>Referer</code>, u otros campos de cabeceras HTTP de petición.</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
+&lt;Directory "/docroot"&gt;
+    Order Deny,Allow
+    Deny from all
+    Allow from env=let_me_in
+&lt;/Directory&gt;</pre>
+
+
+    <p>En este caso, navegadores con una cadena user-agent que comienza con <code>KnockKnock/2.0</code> podrán acceder, y al resto se les denegará el acceso.</p>
+
+    <div class="note"> <h3>Fusión de secciones de configuración</h3>
+      <p>Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Deny" id="Deny">Deny</a> <a name="deny" id="deny">Directiva</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Descripción:</a></th><td>Controla a qué hosts se les deniega el acceso al servidor</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code> Deny from all|<var>host</var>|env=[!]<var>env-variable</var>
+[<var>host</var>|env=[!]<var>env-variable</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>Limit</td></tr>
+<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensión</td></tr>
+<tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>mod_access_compat</td></tr>
+</table>
+    <p>Esta directiva permite que se restrinja el acceso al servidor basándose en el nombre de host, dirección IP, o variables de entorno. Los parámetros para la directiva 
+    <code class="directive">Deny</code> son idénticos a los parámetros para la directiva 
+    <code class="directive"><a href="#allow">Allow</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Order" id="Order">Order</a> <a name="order" id="order">Directiva</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Descripción:</a></th><td>Controla el estado por defecto del acceso y el orden en que se evalúan 
+  <code class="directive">Allow</code> y 
+<code class="directive">Deny</code>.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code> Order <var>ordering</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>Order Deny,Allow</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>Limit</td></tr>
+<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensión</td></tr>
+<tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>mod_access_compat</td></tr>
+</table>
+
+    <p>La directiva <code class="directive">Order</code> , junto con las directivas
+    <code class="directive"><a href="#allow">Allow</a></code> y
+    <code class="directive"><a href="#deny">Deny</a></code>, realizan un sistema de control de tres fases. La primera fase proceso o bien todas las directivas 
+    <code class="directive"><a href="#allow">Allow</a></code> o todas las directivas 
+    <code class="directive"><a href="#deny">Deny</a></code>, tal y como se haya especificado en la directiva  
+    <code class="directive"><a href="#order">Order</a></code>. La segunda fase interpreta el resto de directivas 
+    (<code class="directive"><a href="#deny">Deny</a></code> o
+    <code class="directive"><a href="#allow">Allow</a></code>). La tercera fase se aplica a todas las peticiones que no coinciden con cualquiera de las dos fases anteriores.</p>
+
+    <p>Tenga en cuenta que todas las directivas 
+    <code class="directive"><a href="#allow">Allow</a></code> y 
+    <code class="directive"><a href="#deny">Deny</a></code> son procesadas, al contrario que el cortafuegos típico, donde solo se usa la primera coincidencia. La última coincidencia es efectiva (también al contrario que un cortafuegos típico). Además, el orden en el que las directivas aparecen en la configuración no es relevante -- todas las líneas 
+    <code class="directive"><a href="#allow">Allow</a></code> se interpretan como un grupo, todas las líneas <code class="directive"><a href="#deny">Deny</a></code> se interpretan como otro grupo, y el estado por defecto se procesa a sí mismo.</p>
+
+    <p><em>Ordenar</em> es una de las dos:</p>
+
+    <dl>
+      <dt><code>Allow,Deny</code></dt>
+
+      <dd>Primero, se interpretan todas las directivas <code class="directive"><a href="#allow">Allow</a></code>; al menos una debe coincidir, o se deniega el acceso a la petición. Después, todas las directivas <code class="directive"><a href="#deny">Deny</a></code> son interpretadas. Si alguna coincide, se deniega el acceso a la petición. Por último, cualquier petición que no encaje en una directiva <code class="directive"><a href="#allow">Allow</a></code> o <code class="directive"><a href="#deny">Deny</a></code> se les deniega el acceso por defecto.</dd>
+
+      <dt><code>Deny,Allow</code></dt>
+
+      <dd>Primero, se interpretan todas las directivas <code class="directive"><a href="#deny">Deny</a></code>; si alguna coincide, se deniega el acceso a la petición <strong>a menos que</strong> también encaje con una directiva <code class="directive"><a href="#allow">Allow</a></code>. Cualquier petición que no encaje ni con directivas <code class="directive"><a href="#allow">Allow</a></code> ni <code class="directive"><a href="#deny">Deny</a></code> se les permite el acceso.</dd>
+
+      <dt><code>Mutual-failure</code></dt>
+
+      <dd>Este orden tiene el mismo efecto que <code>Order Allow,Deny</code> y ha quedado obsoleto en su favor.</dd>
+    </dl>
+
+    <p>Las palabras clave solo pueden ser separadas por coma; no se permiten <em>espacios en blanco</em> entre ellas.</p>
+
+    <table class="bordered">
+      <tr>
+        <th>Filtro</th>
+        <th>Resultado Allow,Deny</th>
+        <th>Resultado Deny,Allow</th>
+      </tr><tr>
+        <th>Solo coincide con Allow</th>
+        <td>Petición permitida</td>
+        <td>Petición permitida</td>
+      </tr><tr>
+        <th>Solo coincide con Deny</th>
+        <td>Petición denegada</td>
+        <td>Petición denegada</td>
+      </tr><tr>
+        <th>No coincide</th>
+        <td>Por defecto con la segunda directiva: Denegado</td>
+        <td>Por defecto con la segunda directiva: Permitido</td>
+      </tr><tr>
+        <th>Coincide con ambas Allow &amp; Deny</th>
+        <td>Control de coincidencia final: Denegado</td>
+        <td>Control de coincidencia final: Permitido</td>
+      </tr>
+    </table>
+
+    <p>En el siguiente ejemplo, todos los host en el dominio example.org tienen permitido el acceso; el resto de host tienen el acceso denegado.</p>
+
+    <pre class="prettyprint lang-config">Order Deny,Allow
+Deny from all
+Allow from example.org</pre>
+
+
+    <p>En el siguiente ejemplo, todos los hosts del dominio example.org tienen permitido el acceso, excepto para los host que están en el subdominio foo.example.org, a los que se le deniega el acceso. Todos los host que no coinciden con el dominio example.org tienen el acceso denegado porque el estado por defecto es <code class="directive"><a href="#deny">Deny</a></code> con el acceso al servidor.</p>
+
+    <pre class="prettyprint lang-config">Order Allow,Deny
+Allow from example.org
+Deny from foo.example.org</pre>
+
+
+    <p>Por otro lado, si el <code class="directive">Order</code> en el último ejemplo se cambia a <code>Deny,Allow</code>, se permitirá el acceso a todos los host. Esto pasa porque, independientemente del orden actual de las directivas en el fichero de configuración, <code>Allow from example.org</code> será interpretrado en último lugar y sobreescribirá la orden de <code>Deny from foo.example.org</code>. Todos los host que no estén en el dominio <code>example.org</code> también tendrán acceso porque el estado por defecto es <code class="directive"><a href="#allow">Allow</a></code>.</p>
+
+    <p>La presencia de una directiva <code class="directive">Order</code> puede afectar el acceso a una parte del servidor incluso en la ausencia de las directivas <code class="directive"><a href="#allow">Allow</a></code>
+    y <code class="directive"><a href="#deny">Deny</a></code> por su efecto en el estado del acceso por defecto. Por ejemplo,</p>
+
+    <pre class="prettyprint lang-config">&lt;Directory "/www"&gt;
+    Order Allow,Deny
+&lt;/Directory&gt;</pre>
+
+
+    <p>denegará todos los accesos al directorio <code>/www</code> porque el estado del acceso por defecto está configurado con <code class="directive"><a href="#deny">Deny</a></code>.</p>
+
+    <p>La directiva <code class="directive">Order</code> controla el orden de procesamiento de las directivas solo en cada fase del procesamiento de la configuración de un servidor. Esto implica, por ejemplo, que una directiva 
+    <code class="directive"><a href="#allow">Allow</a></code> o <code class="directive"><a href="#deny">Deny</a></code> dentro de una sección
+    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> será siempre interpretada después de una directiva 
+     <code class="directive"><a href="#allow">Allow</a></code> o <code class="directive"><a href="#deny">Deny</a></code> dentro de una sección
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> o fichero <code>.htaccess</code>, independientemente de la configuración de la directiva <code class="directive">Order</code>. Para detalles sobre la fusión de secciones de configuración, vea la documentación en <a href="../sections.html">Cómo funcionan las secciones Directory, Location y Files</a>.</p>
+
+    <div class="note"> <h3>Fusión de secciones de configuración</h3>
+      <p>Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Satisfy" id="Satisfy">Satisfy</a> <a name="satisfy" id="satisfy">Directiva</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Descripción:</a></th><td>Interacción entre control de acceso a nivel-de-hostess y autenticación de usuario</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>Satisfy Any|All</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>Satisfy All</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensión</td></tr>
+<tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>mod_access_compat</td></tr>
+</table>
+    <p>Política de acceso si se usan ambos <code class="directive"><a href="#allow">Allow</a></code> y <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>. El parámetro puede ser <code>All</code> o <code>Any</code>. Esta directiva solo es útil si el acceso a un área en particular se está restringiendo por usuario/contraseña <em>y</em> dirección de host del cliente. En este caso el comportamiento por defecto (<code>All</code>) es requerir que el cliente pase la restricción de dirección de acceso <em>y</em> además introduce un usuario y contraseña válidos. Con la opción <code>Any</code> se le garantizará acceso al cliente si pasa la restricción de host o introduce un usuario y contraseña válidos. Esto puede usarse para restringir con contraseña el acceso a un area, pero para permitir acceso a los clientes desde unas direcciones en particular sin pedirles contraseña.</p>
+
+    <p>Por ejemplo, si quisiera dejar entrar a personas de su red con acceso sin restricciones a una parte de su website, pero requiere que gente de fuera de su red facilite una contraseña, podría usar una configuración similar a la siguiente:</p>
+
+    <pre class="prettyprint lang-config">Require valid-user
+Allow from 192.168.1
+Satisfy Any</pre>
+
+
+    <p>Otro uso típico de la directiva <code class="directive">Satisfy</code> es para suavizar las restricciones de acceso a un subdirectorio:</p>
+
+    <pre class="prettyprint lang-config">&lt;Directory "/var/www/private"&gt;
+    Require valid-user
+&lt;/Directory&gt;
+
+&lt;Directory "/var/www/private/public"&gt;
+    Allow from all
+    Satisfy Any
+&lt;/Directory&gt;</pre>
+
+
+    <p>En el ejemplo de arriba, se requiere autenticación para el directorio <code>/var/www/private</code>, pero no se requerirá para el directorio <code>/var/www/private/public</code>.</p>
+
+    <p>Desde la versión 2.0.51 las directivas <code class="directive">Satisfy</code> pueden restringirse a métodos específicos con secciones <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code> y <code class="directive"><a href="../mod/core.html#limitexcept">&lt;LimitExcept&gt;</a></code>.</p>
+
+    <div class="note"> <h3>Fusión de secciones de configuración.</h3>
+      <p>Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </div>
+
+
+<h3>Consulte también</h3>
+<ul>
+<li><code class="directive"><a href="#allow">Allow</a></code></li>
+<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
+</ul>
+</div>
+</div>
+<div class="bottomlang">
+<p><span>Idiomas disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
+<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comentarios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_access_compat.html';
+(function(w, d) {
+    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+        d.write('<div id="comments_thread"><\/div>');
+        var s = d.createElement('script');
+        s.type = 'text/javascript';
+        s.async = true;
+        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+    }
+    else {
+        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+    }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2017 The Apache Software Foundation.<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/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+    prettyPrint();
+}
+//--><!]]></script>
+</body></html>
\ No newline at end of file
index 4590c3bf2ab4f95a0c659b483a3a13403c24bfd4..f82b9a3c9a64626f2f338a8f212a852f74dd19c7 100644 (file)
@@ -27,6 +27,7 @@
 <div id="preamble"><h1>Module Apache mod_access_compat</h1>
 <div class="toplang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_access_compat.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
 </div>
@@ -493,6 +494,7 @@ Satisfy Any</pre>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_access_compat.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
index 7cda244a35140d37d35bac4da8ebcf59be2e7531..c28e3c5a4c5d0f47df48e3779826c8c19ee75fbf 100644 (file)
@@ -27,6 +27,7 @@
 <div id="preamble"><h1>Apache モジュール mod_access_compat</h1>
 <div class="toplang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_access_compat.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
 </div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_access_compat.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
diff --git a/docs/manual/mod/mod_access_compat.xml.es b/docs/manual/mod/mod_access_compat.xml.es
new file mode 100644 (file)
index 0000000..cf3dc78
--- /dev/null
@@ -0,0 +1,349 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
+<!-- English Revision: 1738217 -->
+<!-- Spanish Translation: Daniel Ferradal -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<modulesynopsis metafile="mod_access_compat.xml.meta">
+
+<name>mod_access_compat</name>
+<description>Autorizaciones de grupo basadas en el host (nombre o dirección IP)</description>
+<status>Extension</status>
+<sourcefile>mod_access_compat.c</sourcefile>
+<identifier>access_compat_module</identifier>
+<compatibility>Disponible en el servidor Apache HTTP 2.3 como un módulo de compatibilidad con versiones previas de Apache http 2.x. Las directivas facilitadas por este módulo han quedado obsoletas en favor de la nueva refactorización de authz. Por favor vea <module>mod_authz_host</module></compatibility>
+
+<summary>
+    <p>Las directivas facilitadas por <module>mod_access_compat</module> se usan en las secciones 
+    <directive module="core" type="section">Directory</directive>, 
+    <directive module="core" type="section">Files</directive>, y 
+    <directive module="core" type="section">Location</directive> así como en los ficheros 
+    <code><a href="core.html#accessfilename">.htaccess</a></code> para controlar el acceso a partes específicas del servidor. El acceso se puede controlar en base al nombre de host del cliente, dirección IP u otras características de la petición del cliente, tal y como se capturan en las 
+    <a href="../env.html">variables de entorno</a>. La directivas 
+    <directive module="mod_access_compat">Allow</directive> y 
+    <directive module="mod_access_compat">Deny</directive> se usan para especificar qué clientes tienen acceso y cuales no al servidor, mientras que la directiva 
+    <directive module="mod_access_compat">Order</directive> configura el estado del acceso por defecto, y configura cómo las directivas 
+    <directive module="mod_access_compat">Allow</directive> y 
+    <directive module="mod_access_compat">Deny</directive> interactuan la una con la otra.</p>
+
+    <p>Se pueden configurar simultáneamente restricciones basadas en el host y autenticación con contraseña. En ese caso, la directiva <directive module="mod_access_compat">Satisfy</directive> se usa para determinar como los dos sets de restricciones interactuan.</p>
+
+    <note type="warning"><title>Atención</title>
+      <p>Las directivas facilitadas por <module>mod_access_compat</module> han quedado obsoletas en favor de
+      <module>mod_authz_host</module>. Mezclar directivas antiguas como 
+      <directive module="mod_access_compat">Order</directive>, 
+      <directive module="mod_access_compat">Allow</directive> o 
+      <directive module="mod_access_compat">Deny</directive> con las nuevas directivas como 
+      <directive module="mod_authz_core">Require</directive> es técnicamente posible pero no recomendable. Éste módulo se creó para dar soporte a configuraciones que solo contienen directivas antiguas para facilitar una actualización a la versión 2.4. Por favor compruebe la guía 
+      <a href="../upgrading.html">Actualizando</a> para más información.</p>
+    </note>
+
+    <p>En general, las directivas de restricción de acceso aplican a todos los métodos de acceso (<code>GET</code>, <code>PUT</code>, <code>POST</code>, etc). Éste es el comportamiento deseado en la mayor parte de los casos. Sin embargo, es posible restringir algunos métodos, dejando otros métodos sin restricción, configurando las directivas dentro de una sección <directive module="core" type="section">Limit</directive>.</p>
+
+    <note> <title>Fusionando secciones de configuración</title>
+      <p>Cuando cualquier directiva facilitada por este módulo se usa en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </note>
+
+</summary>
+
+<seealso><directive module="mod_authz_core">Require</directive></seealso>
+<seealso><module>mod_authz_host</module></seealso>
+<seealso><module>mod_authz_core</module></seealso>
+
+<directivesynopsis>
+<name>Allow</name>
+<description>Controla qué hosts pueden acceder a un área del servidor</description>
+<syntax> Allow from all|<var>host</var>|env=[!]<var>env-variable</var>
+[<var>host</var>|env=[!]<var>env-variable</var>] ...</syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>Limit</override>
+
+<usage>
+    <p>La directiva <directive>Allow</directive> afecta a qué hosts pueden acceder un área del servidor. El acceso puede controlarse por nombre de host, dirección IP, rango de direcciones IP, o por otras caracterísitcas de la petición del cliente capturadas en variables de entorno.</p>
+
+    <p>El primer parámetro para esta directiva siempre es <code>from</code>. Los siguientes parámetros pueden tomar tres formas diferentes. Si se especifica <code>Allow from all</code>, entonces se permite el acceso a todos los host, dependiendo de la configuración de las directivas 
+    <directive module="mod_access_compat">Deny</directive> y 
+    <directive module="mod_access_compat">Order</directive> tal y como se indicó más arriba. Para permitir solo host específicos o grupos de host acceder al servidor, se puede especificar el <em>host</em> en cualquiera de los siguientes formatos:</p>
+
+    <dl>
+      <dt>Un nomre de dominio (parcial)</dt>
+
+      <dd>
+      <highlight language="config">
+Allow from example.org
+Allow from .net example.edu
+      </highlight>
+      
+      <p>Hosts cuyo nombre coincide, o acaba en estas cadenas de caracteres se les permite acceso. Solo componentes completos pueden coincidir, así que el ejemplo de arriba coincidirá con <code>foo.example.org</code> pero no coincidirán con <code>fooexample.org</code>. Esta configuración provocará que Apache httpd haga una doble resolución de DNS en la dirección IP del cliente, independientemente de la configuración de la directiva 
+      <directive module="core">HostnameLookups</directive>. Hará una resolución inversa de DNS en la dirección IP para encontrar el nombre de host asociado, y entonces hará una resolución del nombre de host para asegurarse de que coincide con la dirección IP original. Solo se le dará acceso al nombre de host si ambas resoluciones de DNS son consistentes.</p></dd>
+
+      <dt>Una dirección IP completa</dt>
+
+      <dd>
+      <highlight language="config">
+Allow from 10.1.2.3
+Allow from 192.168.1.104 192.168.1.205
+      </highlight>
+      <p>Se le permite acceso a una dirección IP de un host</p></dd>
+
+      <dt>Una dirección IP parcial</dt>
+
+      <dd>
+      <highlight language="config">
+Allow from 10.1
+Allow from 10 172.20 192.168.2
+      </highlight>
+      <p>Los primeros 1 al 3 bytes de una dirección IP, para restricción de subred.</p></dd>
+
+      <dt>Una pareja de red/máscara de red</dt>
+
+      <dd>
+      <highlight language="config">
+        Allow from 10.1.0.0/255.255.0.0
+      </highlight>
+
+      <p>Una red a.b.c.d, y una máscara de red w.x.y.z. Para una restricción de subred más específica.</p></dd>
+
+      <dt>Una especificación de red/nnn CIDR</dt>
+
+      <dd>
+      <highlight language="config">
+        Allow from 10.1.0.0/16
+      </highlight>
+
+      <p>Similar al caso anterior, exceptuando que la máscara de red se especifica con número de bits.</p></dd>
+    </dl>
+
+    <p>Tenga en cuenta que los tres últimos ejemplos coinciden exactamente con el mismo grupo de hosts.</p>
+
+    <p>Direcciones y subredes IPv6 pueden especificarse como se describe aquí:</p>
+
+    <highlight language="config">
+Allow from 2001:db8::a00:20ff:fea7:ccea
+Allow from 2001:db8::a00:20ff:fea7:ccea/10
+    </highlight>
+
+    <p>El tercer formato de parámetros para la directiva <directive>Allow</directive> permite que el acceso al servidor se controle mediante la existencia de 
+    <a href="../env.html">variable de entorno</a>. Cuando se especifica 
+    <code>Allow from env=<var>env-variable</var></code>, entonces se le da acceso si la variable de entorno <var>env-variable</var> existe. Cuando se especifica 
+    <code>Allow from env=!<var>env-variable</var></code>, entonces se da acceso si la variable de entorno 
+    <var>env-variable</var> no existe. El servidor facilita la configuración de variables de entorno de una manera flexible basándose en las características de la petición del cliente usando las directivas facilitadas por <module>mod_setenvif</module>. Por tanto, esta directiva se puede usar para permitir acceso basándose en tales factores como el <code>User-Agent</code> del cliente (tipo de navegador), <code>Referer</code>, u otros campos de cabeceras HTTP de petición.</p>
+
+    <highlight language="config">
+SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
+&lt;Directory "/docroot"&gt;
+    Order Deny,Allow
+    Deny from all
+    Allow from env=let_me_in
+&lt;/Directory&gt;
+    </highlight>
+
+    <p>En este caso, navegadores con una cadena user-agent que comienza con <code>KnockKnock/2.0</code> podrán acceder, y al resto se les denegará el acceso.</p>
+
+    <note> <title>Fusión de secciones de configuración</title>
+      <p>Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </note>
+
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>Deny</name>
+<description>Controla a qué hosts se les deniega el acceso al servidor</description>
+<syntax> Deny from all|<var>host</var>|env=[!]<var>env-variable</var>
+[<var>host</var>|env=[!]<var>env-variable</var>] ...</syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>Limit</override>
+
+<usage>
+    <p>Esta directiva permite que se restrinja el acceso al servidor basándose en el nombre de host, dirección IP, o variables de entorno. Los parámetros para la directiva 
+    <directive>Deny</directive> son idénticos a los parámetros para la directiva 
+    <directive module="mod_access_compat">Allow</directive>.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>Order</name>
+<description>Controla el estado por defecto del acceso y el orden en que se evalúan 
+  <directive>Allow</directive> y 
+<directive>Deny</directive>.</description>
+<syntax> Order <var>ordering</var></syntax>
+<default>Order Deny,Allow</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>Limit</override>
+
+<usage>
+
+    <p>La directiva <directive>Order</directive> , junto con las directivas
+    <directive module="mod_access_compat">Allow</directive> y
+    <directive module="mod_access_compat">Deny</directive>, realizan un sistema de control de tres fases. La primera fase proceso o bien todas las directivas 
+    <directive module="mod_access_compat">Allow</directive> o todas las directivas 
+    <directive module="mod_access_compat">Deny</directive>, tal y como se haya especificado en la directiva  
+    <directive module="mod_access_compat">Order</directive>. La segunda fase interpreta el resto de directivas 
+    (<directive module="mod_access_compat">Deny</directive> o
+    <directive module="mod_access_compat">Allow</directive>). La tercera fase se aplica a todas las peticiones que no coinciden con cualquiera de las dos fases anteriores.</p>
+
+    <p>Tenga en cuenta que todas las directivas 
+    <directive module="mod_access_compat">Allow</directive> y 
+    <directive module="mod_access_compat">Deny</directive> son procesadas, al contrario que el cortafuegos típico, donde solo se usa la primera coincidencia. La última coincidencia es efectiva (también al contrario que un cortafuegos típico). Además, el orden en el que las directivas aparecen en la configuración no es relevante -- todas las líneas 
+    <directive module="mod_access_compat">Allow</directive> se interpretan como un grupo, todas las líneas <directive module="mod_access_compat">Deny</directive> se interpretan como otro grupo, y el estado por defecto se procesa a sí mismo.</p>
+
+    <p><em>Ordenar</em> es una de las dos:</p>
+
+    <dl>
+      <dt><code>Allow,Deny</code></dt>
+
+      <dd>Primero, se interpretan todas las directivas <directive module="mod_access_compat">Allow</directive>; al menos una debe coincidir, o se deniega el acceso a la petición. Después, todas las directivas <directive module="mod_access_compat">Deny</directive> son interpretadas. Si alguna coincide, se deniega el acceso a la petición. Por último, cualquier petición que no encaje en una directiva <directive module="mod_access_compat">Allow</directive> o <directive module="mod_access_compat">Deny</directive> se les deniega el acceso por defecto.</dd>
+
+      <dt><code>Deny,Allow</code></dt>
+
+      <dd>Primero, se interpretan todas las directivas <directive module="mod_access_compat">Deny</directive>; si alguna coincide, se deniega el acceso a la petición <strong>a menos que</strong> también encaje con una directiva <directive module="mod_access_compat">Allow</directive>. Cualquier petición que no encaje ni con directivas <directive module="mod_access_compat">Allow</directive> ni <directive
+      module="mod_access_compat">Deny</directive> se les permite el acceso.</dd>
+
+      <dt><code>Mutual-failure</code></dt>
+
+      <dd>Este orden tiene el mismo efecto que <code>Order Allow,Deny</code> y ha quedado obsoleto en su favor.</dd>
+    </dl>
+
+    <p>Las palabras clave solo pueden ser separadas por coma; no se permiten <em>espacios en blanco</em> entre ellas.</p>
+
+    <table border="1">
+      <tr>
+        <th>Filtro</th>
+        <th>Resultado Allow,Deny</th>
+        <th>Resultado Deny,Allow</th>
+      </tr><tr>
+        <th>Solo coincide con Allow</th>
+        <td>Petición permitida</td>
+        <td>Petición permitida</td>
+      </tr><tr>
+        <th>Solo coincide con Deny</th>
+        <td>Petición denegada</td>
+        <td>Petición denegada</td>
+      </tr><tr>
+        <th>No coincide</th>
+        <td>Por defecto con la segunda directiva: Denegado</td>
+        <td>Por defecto con la segunda directiva: Permitido</td>
+      </tr><tr>
+        <th>Coincide con ambas Allow &amp; Deny</th>
+        <td>Control de coincidencia final: Denegado</td>
+        <td>Control de coincidencia final: Permitido</td>
+      </tr>
+    </table>
+
+    <p>En el siguiente ejemplo, todos los host en el dominio example.org tienen permitido el acceso; el resto de host tienen el acceso denegado.</p>
+
+    <highlight language="config">
+Order Deny,Allow
+Deny from all
+Allow from example.org
+    </highlight>
+
+    <p>En el siguiente ejemplo, todos los hosts del dominio example.org tienen permitido el acceso, excepto para los host que están en el subdominio foo.example.org, a los que se le deniega el acceso. Todos los host que no coinciden con el dominio example.org tienen el acceso denegado porque el estado por defecto es <directive module="mod_access_compat">Deny</directive> con el acceso al servidor.</p>
+
+    <highlight language="config">
+Order Allow,Deny
+Allow from example.org
+Deny from foo.example.org
+    </highlight>
+
+    <p>Por otro lado, si el <directive>Order</directive> en el último ejemplo se cambia a <code>Deny,Allow</code>, se permitirá el acceso a todos los host. Esto pasa porque, independientemente del orden actual de las directivas en el fichero de configuración, <code>Allow from example.org</code> será interpretrado en último lugar y sobreescribirá la orden de <code>Deny from foo.example.org</code>. Todos los host que no estén en el dominio <code>example.org</code> también tendrán acceso porque el estado por defecto es <directive
+    module="mod_access_compat">Allow</directive>.</p>
+
+    <p>La presencia de una directiva <directive>Order</directive> puede afectar el acceso a una parte del servidor incluso en la ausencia de las directivas <directive module="mod_access_compat">Allow</directive>
+    y <directive module="mod_access_compat">Deny</directive> por su efecto en el estado del acceso por defecto. Por ejemplo,</p>
+
+    <highlight language="config">
+&lt;Directory "/www"&gt;
+    Order Allow,Deny
+&lt;/Directory&gt;
+    </highlight>
+
+    <p>denegará todos los accesos al directorio <code>/www</code> porque el estado del acceso por defecto está configurado con <directive module="mod_access_compat">Deny</directive>.</p>
+
+    <p>La directiva <directive>Order</directive> controla el orden de procesamiento de las directivas solo en cada fase del procesamiento de la configuración de un servidor. Esto implica, por ejemplo, que una directiva 
+    <directive module="mod_access_compat">Allow</directive> o <directive
+    module="mod_access_compat">Deny</directive> dentro de una sección
+    <directive module="core" type="section">Location</directive> será siempre interpretada después de una directiva 
+     <directive module="mod_access_compat">Allow</directive> o <directive
+    module="mod_access_compat">Deny</directive> dentro de una sección
+    <directive module="core" type="section">Directory</directive> o fichero <code>.htaccess</code>, independientemente de la configuración de la directiva <directive>Order</directive>. Para detalles sobre la fusión de secciones de configuración, vea la documentación en <a
+    href="../sections.html">Cómo funcionan las secciones Directory, Location y Files</a>.</p>
+
+    <note> <title>Fusión de secciones de configuración</title>
+      <p>Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </note>
+
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>Satisfy</name>
+<description>Interacción entre control de acceso a nivel-de-hostess y autenticación de usuario</description>
+<syntax>Satisfy Any|All</syntax>
+<default>Satisfy All</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+    <p>Política de acceso si se usan ambos <directive
+    module="mod_access_compat">Allow</directive> y <directive
+    module="mod_authz_core">Require</directive>. El parámetro puede ser <code>All</code> o <code>Any</code>. Esta directiva solo es útil si el acceso a un área en particular se está restringiendo por usuario/contraseña <em>y</em> dirección de host del cliente. En este caso el comportamiento por defecto (<code>All</code>) es requerir que el cliente pase la restricción de dirección de acceso <em>y</em> además introduce un usuario y contraseña válidos. Con la opción <code>Any</code> se le garantizará acceso al cliente si pasa la restricción de host o introduce un usuario y contraseña válidos. Esto puede usarse para restringir con contraseña el acceso a un area, pero para permitir acceso a los clientes desde unas direcciones en particular sin pedirles contraseña.</p>
+
+    <p>Por ejemplo, si quisiera dejar entrar a personas de su red con acceso sin restricciones a una parte de su website, pero requiere que gente de fuera de su red facilite una contraseña, podría usar una configuración similar a la siguiente:</p>
+
+    <highlight language="config">
+Require valid-user
+Allow from 192.168.1
+Satisfy Any
+    </highlight>
+
+    <p>Otro uso típico de la directiva <directive>Satisfy</directive> es para suavizar las restricciones de acceso a un subdirectorio:</p>
+
+    <highlight language="config">
+&lt;Directory "/var/www/private"&gt;
+    Require valid-user
+&lt;/Directory&gt;
+
+&lt;Directory "/var/www/private/public"&gt;
+    Allow from all
+    Satisfy Any
+&lt;/Directory&gt;
+    </highlight>
+
+    <p>En el ejemplo de arriba, se requiere autenticación para el directorio <code>/var/www/private</code>, pero no se requerirá para el directorio <code>/var/www/private/public</code>.</p>
+
+    <p>Desde la versión 2.0.51 las directivas <directive>Satisfy</directive> pueden restringirse a métodos específicos con secciones <directive module="core" type="section">Limit</directive> y <directive module="core" type="section"
+    >LimitExcept</directive>.</p>
+
+    <note> <title>Fusión de secciones de configuración.</title>
+      <p>Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.</p>
+    </note>
+
+</usage>
+   <seealso><directive module="mod_access_compat">Allow</directive></seealso>
+   <seealso><directive module="mod_authz_core">Require</directive></seealso>
+</directivesynopsis>
+
+</modulesynopsis>
index 8fdd0493ef54118665b0143ec34216cf5df5894c..939e6d971c4996a35628db1a34fe8045f0c8533c 100644 (file)
@@ -8,6 +8,7 @@
 
   <variants>
     <variant>en</variant>
+    <variant>es</variant>
     <variant>fr</variant>
     <variant outdated="yes">ja</variant>
   </variants>
index 65b9912fa940e14f438413a2bebc2f632fbac56e..952f3ee9ec489acb3b4f96eb1f125f62cc2fe400 100644 (file)
@@ -8,6 +8,10 @@ URI: mod_actions.html.en
 Content-Language: en
 Content-type: text/html; charset=ISO-8859-1
 
+URI: mod_actions.html.es
+Content-Language: es
+Content-type: text/html; charset=ISO-8859-1
+
 URI: mod_actions.html.fr
 Content-Language: fr
 Content-type: text/html; charset=ISO-8859-1
index 73f4dc11410f82ba8cda449345e7f0ddeb4bc862..382b87306ea2737d61d2e11d45b9d64b5e17e4f4 100644 (file)
@@ -28,6 +28,7 @@
 <div class="toplang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 <div class="bottomlang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
index b74a67cf8e4012bf670760fae1327586ad37f593..f57e5865a869459803c40bd1df5dfeb548833d46 100644 (file)
@@ -28,6 +28,7 @@
 <div class="toplang">
 <p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
@@ -154,6 +155,7 @@ Script PUT /~bob/put.cgi</pre>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
diff --git a/docs/manual/mod/mod_actions.html.es b/docs/manual/mod/mod_actions.html.es
new file mode 100644 (file)
index 0000000..1623081
--- /dev/null
@@ -0,0 +1,156 @@
+<?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>
+<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+<!--
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+              This file is generated from xml source: DO NOT EDIT
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+      -->
+<title>mod_actions - Servidor HTTP Apache Versión 2.5</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
+<script src="../style/scripts/prettify.min.js" type="text/javascript">
+</script>
+
+<link href="../images/favicon.ico" rel="shortcut icon" /></head>
+<body>
+<div id="page-header">
+<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p>
+<p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
+<img alt="" src="../images/feather.png" /></div>
+<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentación</a> &gt; <a href="../">Versión 2.5</a> &gt; <a href="./">Módulos</a></div>
+<div id="page-content">
+<div id="preamble"><h1>Módulo Apache mod_actions</h1>
+<div class="toplang">
+<p><span>Idiomas disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
+<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
+<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
+<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
+</div>
+<table class="module"><tr><th><a href="module-dict.html#Description">Descripción:</a></th><td>Ejecuta scripts CGI basándose en el tipo de medio o método de la petición.</td></tr>
+<tr><th><a href="module-dict.html#Status">Estado:</a></th><td>Base</td></tr>
+<tr><th><a href="module-dict.html#ModuleIdentifier">Identificador de Módulos:</a></th><td>actions_module</td></tr>
+<tr><th><a href="module-dict.html#SourceFile">Fichero de Código Fuente:</a></th><td>mod_actions.c</td></tr></table>
+<h3>Resumen de contenidos</h3>
+
+    <p>Este módulo tiene dos directivas. La directiva <code class="directive"><a href="#action">Action</a></code> le permite ejecutar scripts CGI siempre que se solicite un fichero con cierto  <a class="glossarylink" href="../glossary.html#mime-type" title="ver glosario">tipo de contenido MIME</a>. La direcitiva 
+    <code class="directive"><a href="#script">Script</a></code> le permite ejecutar scripts CGI siempre que se use un método concreto en una petición. Esto hace mucho más fácil ejecutar scripts para procesar ficheros.</p>
+</div>
+<div id="quickview"><h3 class="directives">Directivas</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#action">Action</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#script">Script</a></li>
+</ul>
+<h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_actions">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_actions">Report a bug</a></li></ul><h3>Consulte también</h3>
+<ul class="seealso">
+<li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li>
+<li><a href="../howto/cgi.html">Contenido Dinámico con CGI</a></li>
+<li><a href="../handler.html">Uso de Handler de Apache httpd</a></li>
+<li><a href="#comments_section">Comentarios</a></li></ul></div>
+
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">Directiva</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Descripción:</a></th><td>Activa un script CGI para un handler concreto o content-type</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>Action <var>action-type</var> <var>cgi-script</var> [virtual]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>mod_actions</td></tr>
+</table>
+    <p>Esta directiva añade una acción, que activará <var>cgi-script</var> cuando <var>action-type</var> se activa por una petición. El <var>cgi-script</var> es el path-de-URL a un recurso designado como un script CGI script usando 
+    <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> o 
+    <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code>. El 
+    <var>action-type</var> puede ser un <a href="../handler.html">handler</a> o un <a class="glossarylink" href="../glossary.html#mime-type" title="ver glosario">tipo de contenido MIME</a>. Envía la URL y el path al fichero del documento solicitado usando las variables de entorno estándar de CGI <code>PATH_INFO</code> y <code>PATH_TRANSLATED</code>. El handler que se usa para esta petición en particular se envía usando la variable <code>REDIRECT_HANDLER</code>.</p>
+
+    <div class="example"><h3>Ejemplo: tipo MIME</h3><pre class="prettyprint lang-config"># Petición de ficheros de un tipo concreto de contenido MIME:
+Action image/gif /cgi-bin/images.cgi</pre>
+</div>
+
+    <p>En este ejemplo, las peticiones de ficheros con contenido tipo MIME <code>image/gif</code> serán gestionadas por el script cgi especificado en <code>/cgi-bin/images.cgi</code>.</p>
+
+    <div class="example"><h3>Ejemplo: Extensión de fichero</h3><pre class="prettyprint lang-config"># Ficheros con una extensión concreta
+AddHandler my-file-type .xyz
+Action my-file-type /cgi-bin/program.cgi</pre>
+</div>
+    <p>En este ejemplo, las peticiones a ficheros con una extensión de fichero
+    <code>.xyz</code> serán gestionadas por el script cgi especificado en
+    <code>/cgi-bin/program.cgi</code>.</p>
+
+    <p>El modificador opcional <code>virtual</code> desactiva la comprobación para saber si el fichero realmente existe. Esto es útil, por ejemplo, si quiere usar la directiva <code class="directive">Action</code> en ubicaciones virtuales.</p>
+
+    <pre class="prettyprint lang-config">&lt;Location "/news"&gt;
+    SetHandler news-handler
+    Action news-handler /cgi-bin/news.cgi virtual
+&lt;/Location&gt;</pre>
+
+
+<h3>Consulte también</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Script" id="Script">Script</a> <a name="script" id="script">Directiva</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Descripción:</a></th><td>Activa un script CGI para peticiones con un método concreto.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>Script <var>method</var> <var>cgi-script</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Módulo:</a></th><td>mod_actions</td></tr>
+</table>
+    <p>Esta directiva añade una acción, que activará <var>cgi-script</var> cuando se solicita un fichero usando un método especificado en el parámetro <var>method</var>. El <var>cgi-script</var> es el path-de-URL al recurso que ha sido designado como un script CGI usando <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> o <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code>. La URL y la ruta al fichero del documento solicitado se envía usando las variables de entorno estándar de CGI <code>PATH_INFO</code> y <code>PATH_TRANSLATED</code>.</p>
+
+    <div class="note">
+      Se puede usar cualquier nombre de método arbitrario. <strong>Los nombres de Método son sensibles a mayúsculas</strong>, así que <code>Script PUT</code> and <code>Script put</code> tienen dos efectos totalmente diferentes.
+    </div>
+
+    <p>Tenga en cuenta que el comando <code class="directive">Script</code> solo define acciones por defecto. Si se llama a un script CGI, o algún otro recurso que esté capacitado para gestionar el método solicitado internamente, éste se utilizará. También tenga en cuenta que solo se invocará <code class="directive">Script</code> con un método <code>GET</code> si hay parámetros de query string presentes en la petición (<em>p.e.</em>, foo.html?hi). Si no, la petición se procesará normalmente.</p>
+
+    <pre class="prettyprint lang-config"># todas las peticiones GET van aquí
+Script GET /cgi-bin/search
+
+# Un handler PUT de CGI
+Script PUT /~bob/put.cgi</pre>
+
+
+</div>
+</div>
+<div class="bottomlang">
+<p><span>Idiomas disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
+<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
+<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
+<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comentarios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_actions.html';
+(function(w, d) {
+    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+        d.write('<div id="comments_thread"><\/div>');
+        var s = d.createElement('script');
+        s.type = 'text/javascript';
+        s.async = true;
+        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+    }
+    else {
+        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+    }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2017 The Apache Software Foundation.<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/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+    prettyPrint();
+}
+//--><!]]></script>
+</body></html>
\ No newline at end of file
index 5c018035d6bfb476f1a5c450fb5417265f01c633..1fc92affd48d9c6cc82d9f54085f38085d7a7487 100644 (file)
@@ -28,6 +28,7 @@
 <div class="toplang">
 <p><span>Langues Disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
@@ -164,6 +165,7 @@ Script PUT /~bob/put.cgi</pre>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
index 81032a5f767ef9d8aab0b441dcf6bd6917f08abd..09dba9d15973f7937cba3f12760dabae9e2780c8 100644 (file)
@@ -28,6 +28,7 @@
 <div class="toplang">
 <p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
@@ -175,6 +176,7 @@ Apache 2.1 で導入されました</td></tr>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
index 617e7500094c8080dd6a7854a9fc20e2c029a823..ed63126ac2a49552492b5ff80993a22cae8a8e67 100644 (file)
@@ -28,6 +28,7 @@
 <div class="toplang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" title="Korean">&nbsp;ko&nbsp;</a></p>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
 <a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_actions.html" title="Korean">&nbsp;ko&nbsp;</a></p>
diff --git a/docs/manual/mod/mod_actions.xml.es b/docs/manual/mod/mod_actions.xml.es
new file mode 100644 (file)
index 0000000..393af41
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
+<!-- English Revision: 1673892 -->
+<!-- Spanish Translation: Daniel Ferradal <dferradal@apache.org> -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<modulesynopsis metafile="mod_actions.xml.meta">
+
+<name>mod_actions</name>
+
+<description>Ejecuta scripts CGI basándose en el tipo de medio o método de la petición.</description>
+
+<status>Base</status>
+<sourcefile>mod_actions.c</sourcefile>
+<identifier>actions_module</identifier>
+
+<summary>
+    <p>Este módulo tiene dos directivas. La directiva <directive
+    module="mod_actions">Action</directive> le permite ejecutar scripts CGI siempre que se solicite un fichero con cierto  <glossary
+    ref="mime-type">tipo de contenido MIME</glossary>. La direcitiva 
+    <directive module="mod_actions">Script</directive> le permite ejecutar scripts CGI siempre que se use un método concreto en una petición. Esto hace mucho más fácil ejecutar scripts para procesar ficheros.</p>
+</summary>
+
+<seealso><module>mod_cgi</module></seealso>
+<seealso><a href="../howto/cgi.html">Contenido Dinámico con CGI</a></seealso>
+<seealso><a href="../handler.html">Uso de Handler de Apache httpd</a></seealso>
+
+<directivesynopsis>
+<name>Action</name>
+<description>Activa un script CGI para un handler concreto o content-type</description>
+<syntax>Action <var>action-type</var> <var>cgi-script</var> [virtual]</syntax>
+<contextlist>
+<context>server config</context><context>virtual host</context>
+<context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>FileInfo</override>
+
+<usage>
+    <p>Esta directiva añade una acción, que activará <var>cgi-script</var> cuando <var>action-type</var> se activa por una petición. El <var>cgi-script</var> es el path-de-URL a un recurso designado como un script CGI script usando 
+    <directive module="mod_alias">ScriptAlias</directive> o 
+    <directive module="mod_mime">AddHandler</directive>. El 
+    <var>action-type</var> puede ser un <a href="../handler.html">handler</a> o un <glossary ref="mime-type">tipo de contenido MIME</glossary>. Envía la URL y el path al fichero del documento solicitado usando las variables de entorno estándar de CGI <code>PATH_INFO</code> y <code>PATH_TRANSLATED</code>. El handler que se usa para esta petición en particular se envía usando la variable <code>REDIRECT_HANDLER</code>.</p>
+
+    <example><title>Ejemplo: tipo MIME</title>
+    <highlight language="config">
+# Petición de ficheros de un tipo concreto de contenido MIME:
+Action image/gif /cgi-bin/images.cgi
+    </highlight>
+    </example>
+
+    <p>En este ejemplo, las peticiones de ficheros con contenido tipo MIME <code>image/gif</code> serán gestionadas por el script cgi especificado en <code>/cgi-bin/images.cgi</code>.</p>
+
+    <example>
+        <title>Ejemplo: Extensión de fichero</title>
+    <highlight language="config">
+# Ficheros con una extensión concreta
+AddHandler my-file-type .xyz
+Action my-file-type /cgi-bin/program.cgi
+    </highlight>
+    </example>
+    <p>En este ejemplo, las peticiones a ficheros con una extensión de fichero
+    <code>.xyz</code> serán gestionadas por el script cgi especificado en
+    <code>/cgi-bin/program.cgi</code>.</p>
+
+    <p>El modificador opcional <code>virtual</code> desactiva la comprobación para saber si el fichero realmente existe. Esto es útil, por ejemplo, si quiere usar la directiva <directive>Action</directive> en ubicaciones virtuales.</p>
+
+    <highlight language="config">
+&lt;Location "/news"&gt;
+    SetHandler news-handler
+    Action news-handler /cgi-bin/news.cgi virtual
+&lt;/Location&gt;
+    </highlight>
+</usage>
+
+<seealso><directive module="mod_mime">AddHandler</directive></seealso>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>Script</name>
+<description>Activa un script CGI para peticiones con un método concreto.</description>
+<syntax>Script <var>method</var> <var>cgi-script</var></syntax>
+<contextlist>
+<context>server config</context><context>virtual host</context>
+<context>directory</context></contextlist>
+<usage>
+    <p>Esta directiva añade una acción, que activará <var>cgi-script</var> cuando se solicita un fichero usando un método especificado en el parámetro <var>method</var>. El <var>cgi-script</var> es el path-de-URL al recurso que ha sido designado como un script CGI usando <directive
+    module="mod_alias">ScriptAlias</directive> o <directive
+    module="mod_mime">AddHandler</directive>. La URL y la ruta al fichero del documento solicitado se envía usando las variables de entorno estándar de CGI <code>PATH_INFO</code> y <code>PATH_TRANSLATED</code>.</p>
+
+    <note>
+      Se puede usar cualquier nombre de método arbitrario. <strong>Los nombres de Método son sensibles a mayúsculas</strong>, así que <code>Script PUT</code> and <code>Script put</code> tienen dos efectos totalmente diferentes.
+    </note>
+
+    <p>Tenga en cuenta que el comando <directive>Script</directive> solo define acciones por defecto. Si se llama a un script CGI, o algún otro recurso que esté capacitado para gestionar el método solicitado internamente, éste se utilizará. También tenga en cuenta que solo se invocará <directive>Script</directive> con un método <code>GET</code> si hay parámetros de query string presentes en la petición (<em>p.e.</em>, foo.html?hi). Si no, la petición se procesará normalmente.</p>
+
+    <highlight language="config">
+# todas las peticiones GET van aquí
+Script GET /cgi-bin/search
+
+# Un handler PUT de CGI
+Script PUT /~bob/put.cgi
+    </highlight>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
\ No newline at end of file
index 21a3be67ab926f521a7860ab9a6d9e719d309464..498c1d865fc106e908a469a956cded6ffbe584cf 100644 (file)
@@ -9,6 +9,7 @@
   <variants>
     <variant outdated="yes">de</variant>
     <variant>en</variant>
+    <variant>es</variant>
     <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
index 3a00d84e3d4732aed2438646d82e6d5bcf005e55..482dc9ee4209a37ef979615acce8e76502a18a0a 100644 (file)
@@ -92,8 +92,8 @@ d'Apache</td></tr></table>
     <p>Cette directive permet de spécifier à quel groupe un utilisateur
     doit appartenir pour obtenir l'autorisation d'accès.</p>
 
-    <pre class="prettyprint lang-config">      Require dbd-group team
-      AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"</pre>
+    <pre class="prettyprint lang-config">Require dbd-group team
+AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"</pre>
 
 
 
@@ -103,8 +103,8 @@ d'Apache</td></tr></table>
     <p>Cette directive permet de spécifier une requête à exécuter pour
     indiquer que l'utilisateur s'est authentifié.</p>
 
-    <pre class="prettyprint lang-config">      Require dbd-login
-      AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
+    <pre class="prettyprint lang-config">Require dbd-login
+AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
 
 
 
@@ -114,8 +114,8 @@ d'Apache</td></tr></table>
     <p>Cette directive permet de spécifier une requête à exécuter pour
     indiquer que l'utilisateur s'est déconnecté.</p>
 
-    <pre class="prettyprint lang-config">      Require dbd-logout
-      AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"</pre>
+    <pre class="prettyprint lang-config">Require dbd-logout
+AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"</pre>
 
 
 
index 0292c86257f2ca0d00d5d1171198d8053f005662..db753de8a99474b3274635cef98063851b52e125 100644 (file)
@@ -69,8 +69,8 @@
     user to gain access.</p>
 
     <highlight language="config">
-      Require dbd-group team
-      AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
+Require dbd-group team
+AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
     </highlight>
 
 </section>
@@ -81,8 +81,8 @@
     has logged in.</p>
 
     <highlight language="config">
-      Require dbd-login
-      AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
+Require dbd-login
+AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
     </highlight>
 
 </section>
@@ -93,8 +93,8 @@
     has logged out.</p>
 
     <highlight language="config">
-      Require dbd-logout
-      AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
+Require dbd-logout
+AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
     </highlight>
 
 </section>
index 9f9cf1c95683ec59efce3922866f668133aefa5b..be93acce799fe1d99ef328baf8a839efad83b6d0 100644 (file)
@@ -1,7 +1,7 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1673892 -->
+<!-- English Revision : 1796296 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
 <status>Extension</status>
 <sourcefile>mod_authz_dbd.c</sourcefile>
 <identifier>authz_dbd_module</identifier>
-<compatibility>Disponible dans les version 2.4 et sup&eacute;rieures
+<compatibility>Disponible dans les version 2.4 et supérieures
 d'Apache</compatibility>
 
 <summary>
-    <p>Ce module fournit des fonctionnalit&eacute;s d'autorisation permettant
-    d'accorder ou de refuser aux utilisateurs authentifi&eacute;s l'acc&egrave;s &agrave;
-    certaines zones du site web en fonction de leur appartenance &agrave; tel
+    <p>Ce module fournit des fonctionnalités d'autorisation permettant
+    d'accorder ou de refuser aux utilisateurs authentifiés l'accès à
+    certaines zones du site web en fonction de leur appartenance à tel
     ou tel groupe. Les modules <module>mod_authz_groupfile</module> et
-    <module>mod_authz_dbm</module> fournissent une fonctionnalit&eacute;
-    similaire, mais ici le module interroge une base de donn&eacute;es SQL pour
-    d&eacute;terminer si un utilisateur appartient ou non &agrave; tel ou tel groupe.</p>
-    <p>Ce module peut aussi fournir des fonctionnalit&eacute;s de connexion
-    utilisateur s'appuyant sur une base de donn&eacute;es. Ceci prend le plus souvent
-    sens lorsque le module est utilis&eacute; conjointement avec
+    <module>mod_authz_dbm</module> fournissent une fonctionnalité
+    similaire, mais ici le module interroge une base de données SQL pour
+    déterminer si un utilisateur appartient ou non à tel ou tel groupe.</p>
+    <p>Ce module peut aussi fournir des fonctionnalités de connexion
+    utilisateur s'appuyant sur une base de données. Ceci prend le plus souvent
+    sens lorsque le module est utilisé conjointement avec
     <module>mod_authn_dbd</module>.</p>
-    <p>Ce module s'appuie sur <module>mod_dbd</module> pour sp&eacute;cifier le
-    pilote de la base de donn&eacute;es sous-jacente et les param&egrave;tres de
-    connexion, et g&eacute;rer les connexions &agrave; la base de donn&eacute;es.</p>
+    <p>Ce module s'appuie sur <module>mod_dbd</module> pour spécifier le
+    pilote de la base de données sous-jacente et les paramètres de
+    connexion, et gérer les connexions à la base de données.</p>
 </summary>
 
 <seealso><directive module="mod_authz_core">Require</directive></seealso>
@@ -61,7 +61,7 @@ d'Apache</compatibility>
     <p>Les directives <directive
     module="mod_authz_core">Require</directive> d'Apache permettent,
     au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
-    est bien autoris&eacute; &agrave; acc&eacute;der &agrave; une ressource. mod_authz_dbd ajoute
+    est bien autorisé à accéder à une ressource. mod_authz_dbd ajoute
     les types d'autorisation <code>dbd-group</code>,
     <code>dbd-login</code> et <code>dbd-logout</code>.</p>
 
@@ -70,36 +70,36 @@ d'Apache</compatibility>
 
 <section id="reqgroup"><title>Require dbd-group</title>
 
-    <p>Cette directive permet de sp&eacute;cifier &agrave; quel groupe un utilisateur
-    doit appartenir pour obtenir l'autorisation d'acc&egrave;s.</p>
+    <p>Cette directive permet de spécifier à quel groupe un utilisateur
+    doit appartenir pour obtenir l'autorisation d'accès.</p>
 
     <highlight language="config">
-      Require dbd-group team
-      AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
+Require dbd-group team
+AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
     </highlight>
 
 </section>
 
 <section id="reqlogin"><title>Require dbd-login</title>
 
-    <p>Cette directive permet de sp&eacute;cifier une requ&ecirc;te &agrave; ex&eacute;cuter pour
-    indiquer que l'utilisateur s'est authentifi&eacute;.</p>
+    <p>Cette directive permet de spécifier une requête à exécuter pour
+    indiquer que l'utilisateur s'est authentifié.</p>
 
     <highlight language="config">
-      Require dbd-login
-      AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
+Require dbd-login
+AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
     </highlight>
 
 </section>
 
 <section id="reqlogout"><title>Require dbd-logout</title>
 
-    <p>Cette directive permet de sp&eacute;cifier une requ&ecirc;te &agrave; ex&eacute;cuter pour
-    indiquer que l'utilisateur s'est d&eacute;connect&eacute;.</p>
+    <p>Cette directive permet de spécifier une requête à exécuter pour
+    indiquer que l'utilisateur s'est déconnecté.</p>
 
     <highlight language="config">
-      Require dbd-logout
-      AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
+Require dbd-logout
+AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
     </highlight>
 
 </section>
@@ -107,35 +107,35 @@ d'Apache</compatibility>
 </section>
 
 <section id="login">
-<title>Connexion s'appuyant sur une base de donn&eacute;es</title>
+<title>Connexion s'appuyant sur une base de données</title>
 <p>
-Outre sa fonction d'autorisation standard consistant &agrave; v&eacute;rifier
-l'appartenance &agrave; des groupes, ce module permet &eacute;galement de g&eacute;rer des
-sessions utilisateur c&ocirc;t&eacute; serveur gr&acirc;ce &agrave; sa fonctionnalit&eacute; de gestion de login/logout
-via base de donn&eacute;es. En particulier, il peut mettre &agrave;
-jour le statut de session de l'utilisateur dans la base de donn&eacute;es
-chaque fois que celui-ci visite certaines URLs (sous r&eacute;serve bien
+Outre sa fonction d'autorisation standard consistant à vérifier
+l'appartenance à des groupes, ce module permet également de gérer des
+sessions utilisateur côté serveur grâce à sa fonctionnalité de gestion de login/logout
+via base de données. En particulier, il peut mettre à
+jour le statut de session de l'utilisateur dans la base de données
+chaque fois que celui-ci visite certaines URLs (sous réserve bien
 entendu que l'utilisateur fournisse les informations de connexion
-n&eacute;cessaires).</p>
+nécessaires).</p>
 <p>Pour cela, il faut definir deux directives <directive
-module="mod_authz_core">Require</directive> sp&eacute;ciales : <code>Require
-dbd-login</code> et <code>Require dbd-logout</code>. Pour les d&eacute;tails de
+module="mod_authz_core">Require</directive> spéciales : <code>Require
+dbd-login</code> et <code>Require dbd-logout</code>. Pour les détails de
 leur utilisation, voir l'exemple de configuration ci-dessous.</p>
 </section>
 
 <section id="client">
-<title>Int&eacute;gration des ouvertures de sessions c&ocirc;t&eacute; client</title>
-<p>Pour les administrateurs qui d&eacute;sirent impl&eacute;menter une gestion de
-session c&ocirc;t&eacute; client fonctionnant de concert avec les fonctionnalit&eacute;s de
-connexion/d&eacute;connexion c&ocirc;t&eacute; serveur offertes par ce module, il est possible
-de d&eacute;finir ou en d'annuler par exemple un cookie HTTP ou un jeton
-de connextion lorsqu'un utilisateur se connecte ou se d&eacute;connecte.</p>
-<p> Pour supporter une telle int&eacute;gration, <module>mod_authz_dbd</module> exporte
-un d&eacute;clenchement optionnel (hook) qui sera lanc&eacute; chaque fois
-que le statut d'un utilisateur sera mis &agrave; jour dans la base de donn&eacute;es.
+<title>Intégration des ouvertures de sessions côté client</title>
+<p>Pour les administrateurs qui désirent implémenter une gestion de
+session côté client fonctionnant de concert avec les fonctionnalités de
+connexion/déconnexion côté serveur offertes par ce module, il est possible
+de définir ou en d'annuler par exemple un cookie HTTP ou un jeton
+de connextion lorsqu'un utilisateur se connecte ou se déconnecte.</p>
+<p> Pour supporter une telle intégration, <module>mod_authz_dbd</module> exporte
+un déclenchement optionnel (hook) qui sera lancé chaque fois
+que le statut d'un utilisateur sera mis à jour dans la base de données.
 D'autres modules de gestion de session pourront alors utiliser ce
-d&eacute;clencheur pour utiliser des fonctions d'ouverture et de
-fermeture de sessions c&ocirc;t&eacute; client.</p>
+déclencheur pour utiliser des fonctions d'ouverture et de
+fermeture de sessions côté client.</p>
 </section>
 
 <section id="example">
@@ -157,7 +157,7 @@ DBDExptime 300
   AuthName Team
   AuthBasicProvider dbd
 
-  # requ&ecirc;te SQL de mod_authn_dbd pour authentifier un utilisateur qui se
+  # requête SQL de mod_authn_dbd pour authentifier un utilisateur qui se
   # connecte
   AuthDBDUserPWQuery \
     "SELECT password FROM authn WHERE user = %s AND login = 'true'"
@@ -168,28 +168,28 @@ DBDExptime 300
   # configuration de mod_authz_dbd
   AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
 
-  # lorsqu'un utilisateur &eacute;choue dans sa tentative d'authentification ou
-  # d'autorisation, on l'invite &agrave; se connecter ; cette page doit
+  # lorsqu'un utilisateur échoue dans sa tentative d'authentification ou
+  # d'autorisation, on l'invite à se connecter ; cette page doit
   # contenir un lien vers /team-private/login.html
   ErrorDocument 401 /login-info.html
 
   &lt;Files "login.html"&gt;
-    # il n'est pas n&eacute;cessaire que l'utilisateur soit d&eacute;j&agrave; connect&eacute; !
+    # il n'est pas nécessaire que l'utilisateur soit déjà connecté !
     AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
 
-    # le processus de connexion dbd ex&eacute;cute une requ&ecirc;te pour enregistrer
+    # le processus de connexion dbd exécute une requête pour enregistrer
     # la connexion de l'utilisateur
     Require dbd-login
     AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
 
     # redirige l'utilisateur vers la page d'origine (si elle existe)
-    # apr&egrave;s une connexion r&eacute;ussie
+    # après une connexion réussie
     AuthzDBDLoginToReferer On
   &lt;/Files&gt;
 
   &lt;Files "logout.html"&gt;
-    # le processus de d&eacute;connexion dbd ex&eacute;cute une requ&ecirc;te pour
-    # enregistrer la d&eacute;connexion de l'utilisateur
+    # le processus de déconnexion dbd exécute une requête pour
+    # enregistrer la déconnexion de l'utilisateur
     Require dbd-logout
     AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
   &lt;/Files&gt;
@@ -198,43 +198,43 @@ DBDExptime 300
 </section>
 
 <section id="security">
-<title>Pr&eacute;vention contre les injections SQL</title>
-  <p>Selon le pilote DBD choisi et le serveur d'arri&egrave;re-plan que vous utilisez,
-  vous devrez prendre garde &agrave; la s&eacute;curit&eacute; dans le domaine SQL.
-  Avec la plupart des pilotes, vous n'avez rien &agrave; faire : la
-  requ&ecirc;te est pr&eacute;par&eacute;e par la base de donn&eacute;es au d&eacute;marrage, et l'entr&eacute;e
-  utilisateur n'est utilis&eacute;e qu'en tant que donn&eacute;e. Mais vous aurez
-  peut-&ecirc;tre &agrave; nettoyer cette entr&eacute;e. Au moment o&ugrave; ces lignes sont
-  &eacute;crites, le seul pilote DBD qui peut n&eacute;cessiter le nettoyage de l'entr&eacute;e
+<title>Prévention contre les injections SQL</title>
+  <p>Selon le pilote DBD choisi et le serveur d'arrière-plan que vous utilisez,
+  vous devrez prendre garde à la sécurité dans le domaine SQL.
+  Avec la plupart des pilotes, vous n'avez rien à faire : la
+  requête est préparée par la base de données au démarrage, et l'entrée
+  utilisateur n'est utilisée qu'en tant que donnée. Mais vous aurez
+  peut-être à nettoyer cette entrée. Au moment où ces lignes sont
+  écrites, le seul pilote DBD qui peut nécessiter le nettoyage de l'entrée
   est FreeTDS.</p>
-  <p>Veuillez vous r&eacute;f&eacute;rez &agrave; la documentation de
-  <module>mod_dbd</module> pour plus d'informations &agrave; propos de la
-  s&eacute;curit&eacute; dans ce domaine.</p>
+  <p>Veuillez vous référez à la documentation de
+  <module>mod_dbd</module> pour plus d'informations à propos de la
+  sécurité dans ce domaine.</p>
 </section>
 
 <directivesynopsis>
 <name>AuthzDBDQuery</name>
-<description>D&eacute;finit la requ&ecirc;te SQL pour l'op&eacute;ration
+<description>Définit la requête SQL pour l'opération
 requise</description>
-<syntax>AuthzDBDQuery <var>requ&ecirc;te</var></syntax>
+<syntax>AuthzDBDQuery <var>requête</var></syntax>
 <contextlist><context>directory</context></contextlist>
 
 <usage>
     <p>La directive <directive>AuthzDBDQuery</directive> permet de
-    sp&eacute;cifier une requ&ecirc;te SQL &agrave; ex&eacute;cuter. Le but de cette requ&ecirc;te d&eacute;pend
+    spécifier une requête SQL à exécuter. Le but de cette requête dépend
     de la directive <directive
     module="mod_authz_core">Require</directive> en cours de
     traitement.</p>
     <ul>
-    <li>Avec la directive <code>Require dbd-group</code>, elle sp&eacute;cifie
-    une requ&ecirc;te permettant de rechercher les groupes d'appartenance de
-    l'utilisateur courant. Ceci correspond &agrave; la fonctionnalit&eacute; standard
+    <li>Avec la directive <code>Require dbd-group</code>, elle spécifie
+    une requête permettant de rechercher les groupes d'appartenance de
+    l'utilisateur courant. Ceci correspond à la fonctionnalité standard
     d'autres modules d'autorisation comme
     <module>mod_authz_groupfile</module> et
     <module>mod_authz_dbm</module>.
-    La premi&egrave;re colonne de chaque enregistrement renvoy&eacute; par la requ&ecirc;te
-    doit contenir une cha&icirc;ne de caract&egrave;res correspondant &agrave; un nom de
-    groupe. La requ&ecirc;te peut renvoyer z&eacute;ro, un ou plusieurs
+    La première colonne de chaque enregistrement renvoyé par la requête
+    doit contenir une chaîne de caractères correspondant à un nom de
+    groupe. La requête peut renvoyer zéro, un ou plusieurs
     enregistrements.
     <highlight language="config">
 Require dbd-group
@@ -242,10 +242,10 @@ AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"
 </highlight>
     </li>
     <li>Avec la directive <code>Require dbd-login</code> ou
-    <code>Require dbd-logout</code>, elle ne refusera jamais l'acc&egrave;s,
-    mais au contraire ex&eacute;cutera une requ&ecirc;te SQL permettant d'enregistrer
-    la connexion ou la d&eacute;connexion de l'utilisateur. Ce dernier doit
-    &ecirc;tre d&eacute;j&agrave; authentifi&eacute; avec <module>mod_authn_dbd</module>.
+    <code>Require dbd-logout</code>, elle ne refusera jamais l'accès,
+    mais au contraire exécutera une requête SQL permettant d'enregistrer
+    la connexion ou la déconnexion de l'utilisateur. Ce dernier doit
+    être déjà authentifié avec <module>mod_authn_dbd</module>.
     <highlight language="config">
 Require dbd-login
 AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
@@ -253,56 +253,56 @@ AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
     </li>
     </ul>
     <p>Dans tous les cas, l'identifiant utilisateur sera transmis comme
-    param&egrave;tre sous la forme d'une simple cha&icirc;ne lorsque la requ&ecirc;te SQL
-    sera ex&eacute;cut&eacute;e. Il y sera fait r&eacute;f&eacute;rence dans la requ&ecirc;te en utilisant
-    le sp&eacute;cificateur de format <code>%s</code>.</p>
+    paramètre sous la forme d'une simple chaîne lorsque la requête SQL
+    sera exécutée. Il y sera fait référence dans la requête en utilisant
+    le spécificateur de format <code>%s</code>.</p>
 </usage>
 </directivesynopsis>
 
 <directivesynopsis>
 <name>AuthzDBDRedirectQuery</name>
-<description>D&eacute;finit une requ&ecirc;te pour rechercher une page vers laquelle
-rediriger l'utilisateur apr&egrave;s une connexion r&eacute;ussie</description>
-<syntax>AuthzDBDRedirectQuery <var>requ&ecirc;te</var></syntax>
+<description>Définit une requête pour rechercher une page vers laquelle
+rediriger l'utilisateur après une connexion réussie</description>
+<syntax>AuthzDBDRedirectQuery <var>requête</var></syntax>
 <contextlist><context>directory</context></contextlist>
 
 <usage>
-    <p>Sp&eacute;cifie une requ&ecirc;te SQL optionnelle &agrave; utiliser apr&egrave;s une
-    connexion (ou une d&eacute;connexion) r&eacute;ussie pour rediriger l'utilisateur
-    vers une URL, qui peut &ecirc;tre sp&eacute;cifique &agrave; l'utilisateur.
-    L'identifiant utilisateur sera transmis comme param&egrave;tre sous la
-    forme d'une simple cha&icirc;ne lorsque la requ&ecirc;te SQL sera ex&eacute;cut&eacute;e. Il y
-    sera fait r&eacute;f&eacute;rence dans la requ&ecirc;te en utilisant le sp&eacute;cificateur de
+    <p>Spécifie une requête SQL optionnelle à utiliser après une
+    connexion (ou une déconnexion) réussie pour rediriger l'utilisateur
+    vers une URL, qui peut être spécifique à l'utilisateur.
+    L'identifiant utilisateur sera transmis comme paramètre sous la
+    forme d'une simple chaîne lorsque la requête SQL sera exécutée. Il y
+    sera fait référence dans la requête en utilisant le spécificateur de
     format <code>%s</code>.</p>
     <highlight language="config">
 AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"
 </highlight>
-    <p>La premi&egrave;re colonne du premier enregistrement renvoy&eacute; par la
-    requ&ecirc;te doit contenir une cha&icirc;ne de caract&egrave;res correspondant &agrave; une
+    <p>La première colonne du premier enregistrement renvoyé par la
+    requête doit contenir une chaîne de caractères correspondant à une
     URL vers laquelle rediriger le client. Les enregistrements suivants
-    sont ignor&eacute;s. Si aucun enregistrement n'est renvoy&eacute;, le client ne
-    sera pas redirig&eacute;.</p>
+    sont ignorés. Si aucun enregistrement n'est renvoyé, le client ne
+    sera pas redirigé.</p>
     <p>Notez que <directive>AuthzDBDLoginToReferer</directive> l'emporte
-    sur cette directive si les deux sont d&eacute;finies.</p>
+    sur cette directive si les deux sont définies.</p>
 </usage>
 </directivesynopsis>
 
 <directivesynopsis>
 <name>AuthzDBDLoginToReferer</name>
-<description>D&eacute;finit si le client doit &ecirc;tre redirig&eacute; vers la page
-d'origine en cas de connexion ou de d&eacute;connexion r&eacute;ussie si une en-t&ecirc;te
-de requ&ecirc;te <code>Referer</code> est pr&eacute;sente</description>
+<description>Définit si le client doit être redirigé vers la page
+d'origine en cas de connexion ou de déconnexion réussie si une en-tête
+de requête <code>Referer</code> est présente</description>
 <syntax>AuthzDBDLoginToReferer On|Off</syntax>
 <default>AuthzDBDLoginToReferer Off</default>
 <contextlist><context>directory</context></contextlist>
 
 <usage>
-    <p>Utilis&eacute;e en conjonction avec <code>Require dbd-login</code> ou
+    <p>Utilisée en conjonction avec <code>Require dbd-login</code> ou
     <code>Require dbd-logout</code>, cette directive permet de rediriger
-    le client vers la page d'origine (l'URL contenue dans l'en-t&ecirc;te
-    de requ&ecirc;te HTTP <code>Referer</code>, s'il est pr&eacute;sent). En
-    l'absence d'en-t&ecirc;te <code>Referer</code>, la d&eacute;finition
-    <code>AuthzDBDLoginToReferer On</code> sera ignor&eacute;e.</p>
+    le client vers la page d'origine (l'URL contenue dans l'en-tête
+    de requête HTTP <code>Referer</code>, s'il est présent). En
+    l'absence d'en-tête <code>Referer</code>, la définition
+    <code>AuthzDBDLoginToReferer On</code> sera ignorée.</p>
 </usage>
 </directivesynopsis>
 
index 7c5a2b5c9e4c9164b4b9190393aa2bb6230d82b6..d4e984e8df5cbfd7a0f2058cc2f7d0793f44e873 100644 (file)
@@ -291,6 +291,13 @@ LogLevel alert rewrite:trace3
          URL.  Available in 2.4.26 and later.</p>
       </dd>
 
+      <dt><code>LongURLOptimization</code></dt>
+      <dd>
+      <p>This option reduces memory usage of long, unoptimized rule sets 
+         that repeatedly expand long values in RewriteCond and RewriteRule
+         variables. Available in 2.5 and later.</p>
+      </dd>
+
       </dl>
 </usage>
 
index be4f5f2b7de8fd21370e1b74cd9302cb2eb8a1b9..b4a21aa1a637addd39ebc753ccf775915a77b891 100644 (file)
@@ -71,8 +71,7 @@
 <tr><td><a href="core.html#acceptfilter" id="A" name="A">AcceptFilter <var>protocol</var> <var>accept_filter</var></a></td><td></td><td>s</td><td>C</td></tr><tr><td class="descr" colspan="4">Configura mejoras para un Protocolo de Escucha de Sockets</td></tr>
 <tr class="odd"><td><a href="core.html#acceptpathinfo">AcceptPathInfo On|Off|Default</a></td><td> Default </td><td>svdh</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Los recursos aceptan información sobre su ruta</td></tr>
 <tr><td><a href="core.html#accessfilename">AccessFileName <var>filename</var> [<var>filename</var>] ...</a></td><td> .htaccess </td><td>sv</td><td>C</td></tr><tr><td class="descr" colspan="4">Nombre del fichero distribuido de configuración</td></tr>
-<tr class="odd"><td><a href="mod_actions.html#action">Action <var>action-type</var> <var>cgi-script</var> [virtual]</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Activates a CGI script for a particular handler or
-content-type</td></tr>
+<tr class="odd"><td><a href="mod_actions.html#action">Action <var>action-type</var> <var>cgi-script</var> [virtual]</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Activa un script CGI para un handler concreto o content-type</td></tr>
 <tr><td><a href="mod_autoindex.html#addalt">AddAlt <var>string</var> <var>file</var> [<var>file</var>] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr><td class="descr" colspan="4">Alternate text to display for a file, instead of an
 icon selected by filename</td></tr>
 <tr class="odd"><td><a href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding <var>string</var> <var>MIME-encoding</var>
@@ -123,8 +122,7 @@ type</td></tr>
 <var>file-path</var>|<var>directory-path</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Maps URLs to filesystem locations using regular
 expressions</td></tr>
 <tr class="odd"><td><a href="mod_access_compat.html#allow"> Allow from all|<var>host</var>|env=[!]<var>env-variable</var>
-[<var>host</var>|env=[!]<var>env-variable</var>] ...</a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Controls which hosts can access an area of the
-server</td></tr>
+[<var>host</var>|env=[!]<var>env-variable</var>] ...</a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Controla qué hosts pueden acceder a un área del servidor</td></tr>
 <tr><td><a href="mod_proxy_connect.html#allowconnect">AllowCONNECT <var>port</var>[-<var>port</var>]
 [<var>port</var>[-<var>port</var>]] ...</a></td><td> 443 563 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Ports that are allowed to <code>CONNECT</code> through the
 proxy</td></tr>
@@ -428,8 +426,7 @@ which no other media type configuration could be found.
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">How much memory should be used by zlib for compression</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflatewindowsize">DeflateWindowSize <var>value</var></a></td><td> 15 </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Zlib compression window size</td></tr>
 <tr><td><a href="mod_access_compat.html#deny"> Deny from all|<var>host</var>|env=[!]<var>env-variable</var>
-[<var>host</var>|env=[!]<var>env-variable</var>] ...</a></td><td></td><td>dh</td><td>E</td></tr><tr><td class="descr" colspan="4">Controls which hosts are denied access to the
-server</td></tr>
+[<var>host</var>|env=[!]<var>env-variable</var>] ...</a></td><td></td><td>dh</td><td>E</td></tr><tr><td class="descr" colspan="4">Controla a qué hosts se les deniega el acceso al servidor</td></tr>
 <tr class="odd"><td><a href="core.html#directory">&lt;Directory <var>directory-path</var>&gt;
 ... &lt;/Directory&gt;</a></td><td></td><td>sv</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Enclose a group of directives that apply only to the
 named file-system directory, sub-directories, and their contents.</td></tr>
@@ -754,9 +751,9 @@ directly</td></tr>
 <tr><td><a href="core.html#options" id="O" name="O">Options
     [+|-]<var>option</var> [[+|-]<var>option</var>] ...</a></td><td> All </td><td>svdh</td><td>C</td></tr><tr><td class="descr" colspan="4">Configures what features are available in a particular
 directory</td></tr>
-<tr class="odd"><td><a href="mod_access_compat.html#order"> Order <var>ordering</var></a></td><td> Deny,Allow </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Controls the default access state and the order in which
-<code class="directive">Allow</code> and <code class="directive">Deny</code> are
-evaluated.</td></tr>
+<tr class="odd"><td><a href="mod_access_compat.html#order"> Order <var>ordering</var></a></td><td> Deny,Allow </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Controla el estado por defecto del acceso y el orden en que se evalúan 
+  <code class="directive">Allow</code> y 
+<code class="directive">Deny</code>.</td></tr>
 <tr><td><a href="mod_sed.html#outputsed">OutputSed <var>sed-command</var></a></td><td></td><td>dh</td><td>X</td></tr><tr><td class="descr" colspan="4">Sed command for filtering response content</td></tr>
 <tr class="odd"><td><a href="mod_env.html#passenv" id="P" name="P">PassEnv <var>env-variable</var> [<var>env-variable</var>]
 ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Passes environment variables from the shell</td></tr>
@@ -950,12 +947,10 @@ by Apache httpd children</td></tr>
 by Apache httpd children</td></tr>
 <tr><td><a href="core.html#rlimitnproc">RLimitNPROC <var>number</var>|max [<var>number</var>|max]</a></td><td></td><td>svdh</td><td>C</td></tr><tr><td class="descr" colspan="4">Limits the number of processes that can be launched by
 processes launched by Apache httpd children</td></tr>
-<tr class="odd"><td><a href="mod_access_compat.html#satisfy" id="S" name="S">Satisfy Any|All</a></td><td> All </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Interaction between host-level access control and
-user authentication</td></tr>
+<tr class="odd"><td><a href="mod_access_compat.html#satisfy" id="S" name="S">Satisfy Any|All</a></td><td> All </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Interacción entre control de acceso a nivel-de-hostess y autenticación de usuario</td></tr>
 <tr><td><a href="mpm_common.html#scoreboardfile">ScoreBoardFile <var>file-path</var></a></td><td> apache_runtime_stat +</td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Location of the file used to store coordination data for
 the child processes</td></tr>
-<tr class="odd"><td><a href="mod_actions.html#script">Script <var>method</var> <var>cgi-script</var></a></td><td></td><td>svd</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Activates a CGI script for a particular request
-method.</td></tr>
+<tr class="odd"><td><a href="mod_actions.html#script">Script <var>method</var> <var>cgi-script</var></a></td><td></td><td>svd</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Activa un script CGI para peticiones con un método concreto.</td></tr>
 <tr><td><a href="mod_alias.html#scriptalias">ScriptAlias [<var>URL-path</var>]
 <var>file-path</var>|<var>directory-path</var></a></td><td></td><td>svd</td><td>B</td></tr><tr><td class="descr" colspan="4">Maps a URL to a filesystem location and designates the
 target as a CGI script</td></tr>
index 785372a8b2d7baed7e9593a4635762350754dd64..f0ea19586827416889439bb501f4fba15a432b9f 100644 (file)
@@ -89,7 +89,7 @@ virtuel basé sur le nom approprié</title>
     cette même paire adresse IP/port, Apache va ensuite comparer les
     valeurs des directives <directive module="core"
     >ServerName</directive> et <directive
-    >module="core">ServerAlias</directive> avec le nom de serveur
+    module="core">ServerAlias</directive> avec le nom de serveur
     présent dans la requête.</p>
 
     <p>Si vous ne définissez pas de directive <directive
index 0967996409d1c3587834e912e984683bf2f56b17..ca2484cf127df2ed1119229903b39c07783792c6 100644 (file)
  * 20161018.2 (2.5.0-dev)  add ap_set_conn_count()
  * 20161018.3 (2.5.0-dev)  add ap_exists_directive()
  * 20161018.4 (2.5.0-dev)  Add taint to request_rec and ap_request_tainted()
+ * 20161018.5 (2.5.0-dev)  Add ap_get_basic_auth_components() and deprecate
+ *                         ap_get_basic_auth_pw()
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20161018
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 4                 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 5                 /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
index 63c3b0cc651a2d8d55eea671327f34f2ea3d4e24..9b8e754100aa2b6c457d9b2d1e6f6437e9c6e570 100644 (file)
@@ -576,7 +576,18 @@ AP_DECLARE(void) ap_note_digest_auth_failure(request_rec *r);
 AP_DECLARE_HOOK(int, note_auth_failure, (request_rec *r, const char *auth_type))
 
 /**
- * Get the password from the request headers
+ * Get the password from the request headers. This function has multiple side
+ * effects due to its prior use in the old authentication framework, including
+ * setting r->user (which is supposed to indicate that the user in question has
+ * been authenticated for the current request).
+ *
+ * Modules which call ap_get_basic_auth_pw() during the authentication phase
+ * MUST either immediately authenticate the user after the call, or else stop
+ * the request immediately with an error response, to avoid incorrectly
+ * authenticating the current request. (See CVE-2017-3167.) The replacement
+ * ap_get_basic_auth_components() API should be preferred.
+ *
+ * @deprecated @see ap_get_basic_auth_components
  * @param r The current request
  * @param pw The password as set in the headers
  * @return 0 (OK) if it set the 'pw' argument (and assured
@@ -589,6 +600,25 @@ AP_DECLARE_HOOK(int, note_auth_failure, (request_rec *r, const char *auth_type))
  */
 AP_DECLARE(int) ap_get_basic_auth_pw(request_rec *r, const char **pw);
 
+#define AP_GET_BASIC_AUTH_PW_NOTE "AP_GET_BASIC_AUTH_PW_NOTE"
+
+/**
+ * Get the username and/or password from the request's Basic authentication
+ * headers. Unlike ap_get_basic_auth_pw(), calling this function has no side
+ * effects on the passed request_rec.
+ *
+ * @param r The current request
+ * @param username If not NULL, set to the username sent by the client
+ * @param password If not NULL, set to the password sent by the client
+ * @return APR_SUCCESS if the credentials were successfully parsed and returned;
+ *         APR_EINVAL if there was no authentication header sent or if the
+ *         client was not using the Basic authentication scheme. username and
+ *         password are unchanged on failure.
+ */
+AP_DECLARE(apr_status_t) ap_get_basic_auth_components(const request_rec *r,
+                                                      const char **username,
+                                                      const char **password);
+
 /**
  * parse_uri: break apart the uri
  * @warning Side Effects:
index db44e98d2d96ba235dfec961bfed5be1e51def6f..12801f94ceccb79cbe3dd0b9524e8f86a3f11715 100644 (file)
@@ -213,13 +213,6 @@ static int status_handler(request_rec *r)
         return DECLINED;
     }
 
-    /* A request that has passed through .htaccess has no business
-     * landing up here.
-     */
-    if (ap_request_tainted(r, AP_TAINT_HTACCESS)) {
-        return DECLINED;
-    }
-
 #ifdef HAVE_TIMES
     times_per_thread = getpid() != child_pid;
 #endif
index f92119b633e474632efb6b48df1f99158d1b316b..28c53be132b455a5a31572d4a934705c68fbf7b9 100644 (file)
@@ -528,9 +528,9 @@ static int is_quoted_pair(const char *s)
     int res = -1;
     int c;
 
-    if (((s + 1) != NULL) && (*s == '\\')) {
+    if (*s == '\\') {
         c = (int) *(s + 1);
-        if (apr_isascii(c)) {
+        if (c && apr_isascii(c)) {
             res = 1;
         }
     }
index fac130b2195bedc5fa14550ef289638192ecca78..e8cefe37f05818a4cfae170f2cf9ef2c4d22d816 100644 (file)
@@ -80,12 +80,18 @@ AC_DEFUN([APACHE_CHECK_NGHTTP2],[
     if test -n "$PKGCONFIG"; then
       saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
       AC_MSG_CHECKING([for pkg-config along $PKG_CONFIG_PATH])
-      if test "x$ap_nghttp2_base" != "x" -a \
-              -f "${ap_nghttp2_base}/lib/pkgconfig/libnghttp2.pc"; then
-        dnl Ensure that the given path is used by pkg-config too, otherwise
-        dnl the system libnghttp2.pc might be picked up instead.
-        PKG_CONFIG_PATH="${ap_nghttp2_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
-        export PKG_CONFIG_PATH
+      if test "x$ap_nghttp2_base" != "x" ; then
+        if test -f "${ap_nghttp2_base}/lib/pkgconfig/libnghttp2.pc"; then
+          dnl Ensure that the given path is used by pkg-config too, otherwise
+          dnl the system libnghttp2.pc might be picked up instead.
+          PKG_CONFIG_PATH="${ap_nghttp2_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
+          export PKG_CONFIG_PATH
+        elif test -f "${ap_nghttp2_base}/lib64/pkgconfig/libnghttp2.pc"; then
+          dnl Ensure that the given path is used by pkg-config too, otherwise
+          dnl the system libnghttp2.pc might be picked up instead.
+          PKG_CONFIG_PATH="${ap_nghttp2_base}/lib64/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
+          export PKG_CONFIG_PATH
+        fi
       fi
       AC_ARG_ENABLE(nghttp2-staticlib-deps,APACHE_HELP_STRING(--enable-nghttp2-staticlib-deps,[link mod_http2 with dependencies of libnghttp2's static libraries (as indicated by "pkg-config --static"). Must be specified in addition to --enable-http2.]), [
         if test "$enableval" = "yes"; then
index 0520dc59145670a5ac5b7a1e0d4370b16e5a8be2..b126be935f92eee43de7b65fdd3c0eaa3c166d20 100644 (file)
@@ -292,12 +292,12 @@ static void task_destroy(h2_mplx *m, h2_task *task)
     
     slave = task->c;
 
-    if (m->s->keep_alive_max == 0 || slave->keepalives < m->s->keep_alive_max) {
-        reuse_slave = ((m->spare_slaves->nelts < (m->limit_active * 3 / 2))
-                       && !task->rst_error);
-    }
-    
     if (slave) {
+        if (m->s->keep_alive_max == 0 || slave->keepalives < m->s->keep_alive_max) {
+            reuse_slave = ((m->spare_slaves->nelts < (m->limit_active * 3 / 2))
+                           && !task->rst_error);
+        }
+
         if (reuse_slave && slave->keepalive == AP_CONN_KEEPALIVE) {
             h2_beam_log(task->output.beam, m->c, APLOG_DEBUG, 
                         APLOGNO(03385) "h2_task_destroy, reuse slave");    
@@ -307,7 +307,6 @@ static void task_destroy(h2_mplx *m, h2_task *task)
         else {
             h2_beam_log(task->output.beam, m->c, APLOG_TRACE1, 
                         "h2_task_destroy, destroy slave");    
-            slave->sbh = NULL;
             h2_slave_destroy(slave);
         }
     }
@@ -1058,19 +1057,23 @@ apr_status_t h2_mplx_idle(h2_mplx *m)
                           "h2_mplx(%ld): idle, no tasks ongoing, %d streams",
                           m->id, (int)h2_ihash_count(m->streams));
             h2_ihash_shift(m->streams, (void**)&stream, 1);
-            if (stream && stream->output) {
-                /* FIXME: this looks like a race between the session thinking
-                 * it is idle and the EOF on a stream not being sent.
-                 * Signal to caller to leave IDLE state.
-                 */
-                ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
-                              H2_STRM_MSG(stream, "output closed=%d, mplx idle"
-                              ", out has %ld bytes buffered"),
-                              h2_beam_is_closed(stream->output),
-                              (long)h2_beam_get_buffered(stream->output));
+            if (stream) {
                 h2_ihash_add(m->streams, stream);
-                check_data_for(m, stream, 0);
-                status = APR_EAGAIN;
+                if (stream->output && !stream->out_checked) {
+                    /* FIXME: this looks like a race between the session thinking
+                     * it is idle and the EOF on a stream not being sent.
+                     * Signal to caller to leave IDLE state.
+                     */
+                    ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
+                                  H2_STRM_MSG(stream, "output closed=%d, mplx idle"
+                                              ", out has %ld bytes buffered"),
+                                  h2_beam_is_closed(stream->output),
+                                  (long)h2_beam_get_buffered(stream->output));
+                    h2_ihash_add(m->streams, stream);
+                    check_data_for(m, stream, 0);
+                    stream->out_checked = 1;
+                    status = APR_EAGAIN;
+                }
             }
         }
     }
index f328714951b3c4c0067ec9bd9513be4b353c426e..c3b4b844fd41381c24f94eda2e208561744e3a28 100644 (file)
@@ -89,6 +89,7 @@ struct h2_stream {
     unsigned int scheduled : 1; /* stream has been scheduled */
     unsigned int has_response : 1; /* response headers are known */
     unsigned int input_eof : 1; /* no more request data coming */
+    unsigned int out_checked : 1; /* output eof was double checked */
     unsigned int push_policy;   /* which push policy to use for this request */
     
     struct h2_task *task;       /* assigned task to fullfill request */
index 9c052e320096330024f5e2c8ca0dc91796f8237d..7b447d3c19cfb42aa44a5efd6b003ef93b8a84f8 100644 (file)
@@ -26,7 +26,7 @@
  * @macro
  * Version number of the http2 module as c string
  */
-#define MOD_HTTP2_VERSION "1.10.6-DEV"
+#define MOD_HTTP2_VERSION "1.10.7-DEV"
 
 /**
  * @macro
@@ -34,7 +34,7 @@
  * release. This is a 24 bit number with 8 bits for major number, 8 bits
  * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
  */
-#define MOD_HTTP2_VERSION_NUM 0x010a06
+#define MOD_HTTP2_VERSION_NUM 0x010a07
 
 
 #endif /* mod_h2_h2_version_h */
index 67d692a71b36eb1ea35c9ba617679109bcefcf8b..9647c6f55b7779e6419b5fdb9452092c13f2666a 100644 (file)
@@ -203,6 +203,7 @@ static const char* really_last_key = "rewrite_really_last";
 #define OPTION_IGNORE_INHERIT       (1<<8)
 #define OPTION_IGNORE_CONTEXT_INFO  (1<<9)
 #define OPTION_LEGACY_PREFIX_DOCROOT (1<<10)
+#define OPTION_LONGOPT              (1<<11)
 
 #ifndef RAND_MAX
 #define RAND_MAX 32767
@@ -397,6 +398,7 @@ typedef struct {
     char        *perdir;
     backrefinfo briRR;
     backrefinfo briRC;
+    apr_pool_t *temp_pool;
 } rewrite_ctx;
 
 /*
@@ -2286,14 +2288,13 @@ static APR_INLINE char *find_char_in_curlies(char *s, int c)
  * are interpreted by a later expansion, producing results that
  * were not intended by the administrator.
  */
-static char *do_expand(char *input, rewrite_ctx *ctx, rewriterule_entry *entry)
+static char *do_expand(char *input, rewrite_ctx *ctx, rewriterule_entry *entry, apr_pool_t *pool)
 {
     result_list *result, *current;
     result_list sresult[SMALL_EXPANSION];
     unsigned spc = 0;
     apr_size_t span, inputlen, outlen;
     char *p, *c;
-    apr_pool_t *pool = ctx->r->pool;
 
     span = strcspn(input, "\\$%");
     inputlen = strlen(input);
@@ -2398,10 +2399,10 @@ static char *do_expand(char *input, rewrite_ctx *ctx, rewriterule_entry *entry)
                     }
 
                     /* reuse of key variable as result */
-                    key = lookup_map(ctx->r, map, do_expand(key, ctx, entry));
+                    key = lookup_map(ctx->r, map, do_expand(key, ctx, entry, pool));
 
                     if (!key && dflt && *dflt) {
-                        key = do_expand(dflt, ctx, entry);
+                        key = do_expand(dflt, ctx, entry, pool);
                     }
 
                     if (key) {
@@ -2499,7 +2500,7 @@ static void do_expand_env(data_item *env, rewrite_ctx *ctx)
     char *name, *val;
 
     while (env) {
-        name = do_expand(env->data, ctx, NULL);
+        name = do_expand(env->data, ctx, NULL, ctx->r->pool);
         if (*name == '!') {
             name++;
             apr_table_unset(ctx->r->subprocess_env, name);
@@ -2626,7 +2627,7 @@ static void add_cookie(request_rec *r, char *s)
 static void do_expand_cookie(data_item *cookie, rewrite_ctx *ctx)
 {
     while (cookie) {
-        add_cookie(ctx->r, do_expand(cookie->data, ctx, NULL));
+        add_cookie(ctx->r, do_expand(cookie->data, ctx, NULL, ctx->r->pool));
         cookie = cookie->next;
     }
 
@@ -3037,6 +3038,9 @@ static const char *cmd_rewriteoptions(cmd_parms *cmd,
         else if (!strcasecmp(w, "legacyprefixdocroot")) {
             options |= OPTION_LEGACY_PREFIX_DOCROOT;
         }
+        else if (!strcasecmp(w, "LongURLOptimization")) {
+            options |= OPTION_LONGOPT;
+        }
         else {
             return apr_pstrcat(cmd->pool, "RewriteOptions: unknown option '",
                                w, "'", NULL);
@@ -3867,7 +3871,7 @@ static APR_INLINE int compare_lexicography(char *a, char *b)
 /*
  * Apply a single rewriteCond
  */
-static int apply_rewrite_cond(rewritecond_entry *p, rewrite_ctx *ctx)
+static int apply_rewrite_cond(rewritecond_entry *p, rewrite_ctx *ctx, apr_pool_t *pool)
 {
     char *input = NULL;
     apr_finfo_t sb;
@@ -3877,7 +3881,7 @@ static int apply_rewrite_cond(rewritecond_entry *p, rewrite_ctx *ctx)
     int basis;
 
     if (p->ptype != CONDPAT_AP_EXPR)
-        input = do_expand(p->input, ctx, NULL);
+        input = do_expand(p->input, ctx, NULL, pool);
 
     switch (p->ptype) {
     case CONDPAT_FILE_EXISTS:
@@ -4041,7 +4045,7 @@ static APR_INLINE void force_type_handler(rewriterule_entry *p,
     char *expanded;
 
     if (p->forced_mimetype) {
-        expanded = do_expand(p->forced_mimetype, ctx, p);
+        expanded = do_expand(p->forced_mimetype, ctx, p, ctx->r->pool);
 
         if (*expanded) {
             ap_str_tolower(expanded);
@@ -4055,7 +4059,7 @@ static APR_INLINE void force_type_handler(rewriterule_entry *p,
     }
 
     if (p->forced_handler) {
-        expanded = do_expand(p->forced_handler, ctx, p);
+        expanded = do_expand(p->forced_handler, ctx, p, ctx->r->pool);
 
         if (*expanded) {
             ap_str_tolower(expanded);
@@ -4152,7 +4156,7 @@ static int apply_rewrite_rule(rewriterule_entry *p, rewrite_ctx *ctx)
     for (i = 0; i < rewriteconds->nelts; ++i) {
         rewritecond_entry *c = &conds[i];
 
-        rc = apply_rewrite_cond(c, ctx);
+        rc = apply_rewrite_cond(c, ctx,  ctx->temp_pool ? ctx->temp_pool : r->pool);
         /*
          * Reset vary_this if the novary flag is set for this condition.
          */
@@ -4174,6 +4178,9 @@ static int apply_rewrite_rule(rewriterule_entry *p, rewrite_ctx *ctx)
             }
         }
         else if (!rc) {
+            if (ctx->temp_pool) { 
+                apr_pool_clear(ctx->temp_pool);
+            }
             return 0;
         }
 
@@ -4191,7 +4198,7 @@ static int apply_rewrite_rule(rewriterule_entry *p, rewrite_ctx *ctx)
 
     /* expand the result */
     if (!(p->flags & RULEFLAG_NOSUB)) {
-        newuri = do_expand(p->output, ctx, p);
+        newuri = do_expand(p->output, ctx, p, ctx->r->pool);
         rewritelog((r, 2, ctx->perdir, "rewrite '%s' -> '%s'", ctx->uri,
                     newuri));
     }
@@ -4329,11 +4336,21 @@ static int apply_rewrite_list(request_rec *r, apr_array_header_t *rewriterules,
     int s;
     rewrite_ctx *ctx;
     int round = 1;
+    rewrite_perdir_conf *dconf = (rewrite_perdir_conf *)
+                                 ap_get_module_config(r->per_dir_config,
+                                                      &rewrite_module);
 
     ctx = apr_palloc(r->pool, sizeof(*ctx));
     ctx->perdir = perdir;
     ctx->r = r;
 
+    if (dconf->options & OPTION_LONGOPT) { 
+        apr_pool_create(&(ctx->temp_pool), r->pool);
+    }
+    else { 
+        ctx->temp_pool = NULL;
+    }
+
     /*
      *  Iterate over all existing rules
      */
index b8281e0b542bab5885c9f4b037264021ecfc47ee..a0b08788cf094b9133b328d6423702fed1092be7 100644 (file)
@@ -932,14 +932,6 @@ static int proxy_fixup(request_rec *r)
     if (!r->proxyreq || !r->filename || strncmp(r->filename, "proxy:", 6) != 0)
         return DECLINED;
 
-    /* A request that has passed through .htaccess has no business
-     * serving contents from so far outside its directory.
-     * Since we're going to decline it, don't waste time here.
-     */
-    if (ap_request_tainted(r, AP_TAINT_HTACCESS)) {
-        return DECLINED;
-    }
-
     /* XXX: Shouldn't we try this before we run the proxy_walk? */
     url = &r->filename[6];
 
@@ -1033,13 +1025,6 @@ static int proxy_handler(request_rec *r)
         return DECLINED;
     }
 
-    /* A request that has passed through .htaccess has no business
-     * serving contents from so far outside its directory.
-     */
-    if (ap_request_tainted(r, AP_TAINT_HTACCESS)) {
-        return DECLINED;
-    }
-
     if (!r->proxyreq) {
         /* We may have forced the proxy handler via config or .htaccess */
         if (r->handler &&
index d40ab20530685bbf55d235631d2bb5a4ccd1f663..8bf84c614b8f639790c63e6d69cdaffe24658b73 100644 (file)
@@ -1121,7 +1121,7 @@ static const char *cmd_servertype(cmd_parms *cmd, void *in_dconf,
     if (!strcasecmp(val, "GENERIC")) {
        dconf->backend_type = BACKEND_GENERIC;
     }
-    else if (!strcasecmp(val, "FPM")) { 
+    else if (!strcasecmp(val, "FPM")) {
        dconf->backend_type = BACKEND_FPM;
     }
     else {
index 42147b9477c55944090d45632ee2e78e751acf79..8c0e06c19583a598f749669c32cd9914d4d43a6c 100644 (file)
@@ -328,7 +328,7 @@ static int proxy_wstunnel_request(apr_pool_t *p, request_rec *r,
     }
 
     if (ap_cstr_casecmp(upgrade_method, "NONE") == 0) {
-       buf = apr_pstrdup(p, "Upgrade: WebSocket" CRLF "Connection: Upgrade" CRLF CRLF);
+        buf = apr_pstrdup(p, "Upgrade: WebSocket" CRLF "Connection: Upgrade" CRLF CRLF);
     } else {
         buf = apr_pstrcat(p, "Upgrade: ", upgrade_method, CRLF "Connection: Upgrade" CRLF CRLF, NULL);
     }
index 770fd4e3b6abd8a55767209d2e6919d14bac2854..d75a1ccba886be01d91bc8e997d82fa70d09f683 100644 (file)
@@ -967,20 +967,21 @@ static apr_status_t ssl_filter_write(ap_filter_t *f,
  * establish an outgoing SSL connection. */
 #define MODSSL_ERROR_BAD_GATEWAY (APR_OS_START_USERERR + 1)
 
-static void ssl_io_filter_disable(SSLConnRec *sslconn, ap_filter_t *f)
+static void ssl_io_filter_disable(SSLConnRec *sslconn,
+                                  bio_filter_in_ctx_t *inctx)
 {
-    bio_filter_in_ctx_t *inctx = f->ctx;
     SSL_free(inctx->ssl);
     sslconn->ssl = NULL;
     inctx->ssl = NULL;
     inctx->filter_ctx->pssl = NULL;
 }
 
-static apr_status_t ssl_io_filter_error(ap_filter_t *f,
+static apr_status_t ssl_io_filter_error(bio_filter_in_ctx_t *inctx,
                                         apr_bucket_brigade *bb,
                                         apr_status_t status,
                                         int is_init)
 {
+    ap_filter_t *f = inctx->f;
     SSLConnRec *sslconn = myConnConfig(f->c);
     apr_bucket *bucket;
     int send_eos = 1;
@@ -993,7 +994,7 @@ static apr_status_t ssl_io_filter_error(ap_filter_t *f,
                          "trying to send HTML error page");
             ssl_log_ssl_error(SSLLOG_MARK, APLOG_INFO, sslconn->server);
 
-            ssl_io_filter_disable(sslconn, f);
+            ssl_io_filter_disable(sslconn, inctx);
             f->c->keepalive = AP_CONN_CLOSE;
             if (is_init) {
                 sslconn->non_ssl_request = NON_SSL_SEND_REQLINE;
@@ -1553,7 +1554,7 @@ static apr_status_t ssl_io_filter_input(ap_filter_t *f,
      * rather than have SSLEngine On configured.
      */
     if ((status = ssl_io_filter_handshake(inctx->filter_ctx)) != APR_SUCCESS) {
-        return ssl_io_filter_error(f, bb, status, is_init);
+        return ssl_io_filter_error(inctx, bb, status, is_init);
     }
 
     if (is_init) {
@@ -1607,7 +1608,7 @@ static apr_status_t ssl_io_filter_input(ap_filter_t *f,
 
     /* Handle custom errors. */
     if (status != APR_SUCCESS) {
-        return ssl_io_filter_error(f, bb, status, 0);
+        return ssl_io_filter_error(inctx, bb, status, 0);
     }
 
     /* Create a transient bucket out of the decrypted data. */
@@ -1796,7 +1797,7 @@ static apr_status_t ssl_io_filter_output(ap_filter_t *f,
     inctx->block = APR_BLOCK_READ;
 
     if ((status = ssl_io_filter_handshake(filter_ctx)) != APR_SUCCESS) {
-        return ssl_io_filter_error(f, bb, status, 0);
+        return ssl_io_filter_error(inctx, bb, status, 0);
     }
 
     while (!APR_BRIGADE_EMPTY(bb) && status == APR_SUCCESS) {
index c3e2cfa657cd61d81118de5dbf8a397e2c70c742..aecf5d324c3f15b8f56a6d2d5f34afc5b6ad40bf 100644 (file)
@@ -511,6 +511,7 @@ static BOOL stapling_renew_response(server_rec *s, modssl_ctx_t *mctx, SSL *ssl,
                      "stapling_renew_response: responder error");
         if (mctx->stapling_fake_trylater) {
             *prsp = OCSP_response_create(OCSP_RESPONSE_STATUS_TRYLATER, NULL);
+            *pok = FALSE;
         }
         else {
             goto done;
@@ -803,11 +804,11 @@ static int stapling_cb(SSL *ssl, void *arg)
                                          conn->pool);
             stapling_refresh_mutex_off(s);
 
-            if (rv == TRUE) {
+            if ((rv == TRUE) && (ok == TRUE) && rsp) {
                 ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(03040)
                              "stapling_cb: success renewing response");
             }
-            else {
+            else if (rv == FALSE) {
                 ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(01955)
                              "stapling_cb: fatal error renewing response");
                 return SSL_TLSEXT_ERR_ALERT_FATAL;
index 4bdcb8fdedb4a1ad11aac6b566cee55b15db421c..cf2c28f5f03a866e380ac25fbd6768e4ab3a0aa9 100644 (file)
@@ -2779,6 +2779,7 @@ static const char *start_cond_section(cmd_parms *cmd, void *mconfig, const char
     const char *endp = ap_strrchr_c(arg, '>');
     int result, not = (arg[0] == '!');
     test_cond_section_fn testfn = (test_cond_section_fn)cmd->info;
+    const char *arg1;
 
     if (endp == NULL) {
         return unclosed_directive(cmd);
@@ -2790,11 +2791,13 @@ static const char *start_cond_section(cmd_parms *cmd, void *mconfig, const char
         arg++;
     }
 
-    if (!arg[0]) {
+    arg1 = ap_getword_conf(cmd->temp_pool, &arg);
+
+    if (!arg1[0]) {
         return missing_container_arg(cmd);
     }
 
-    result = testfn(cmd, arg);
+    result = testfn(cmd, arg1);
 
     if ((!not && result) || (not && !result)) {
         ap_directive_t *parent = NULL;
@@ -4457,19 +4460,19 @@ AP_INIT_RAW_ARGS("<LimitExcept", ap_limit_section, (void*)1,
                  OR_LIMIT | OR_AUTHCFG,
   "Container for authentication directives to be applied when any HTTP "
   "method other than those specified is used to access the resource"),
-AP_INIT_TAKE1("<IfModule", start_cond_section, (void *)test_ifmod_section,
+AP_INIT_RAW_ARGS("<IfModule", start_cond_section, (void *)test_ifmod_section,
               EXEC_ON_READ | OR_ALL,
   "Container for directives based on existence of specified modules"),
-AP_INIT_TAKE1("<IfDefine", start_cond_section, (void *)test_ifdefine_section,
+AP_INIT_RAW_ARGS("<IfDefine", start_cond_section, (void *)test_ifdefine_section,
               EXEC_ON_READ | OR_ALL,
   "Container for directives based on existence of command line defines"),
-AP_INIT_TAKE1("<IfFile", start_cond_section, (void *)test_iffile_section,
+AP_INIT_RAW_ARGS("<IfFile", start_cond_section, (void *)test_iffile_section,
               EXEC_ON_READ | OR_ALL,
   "Container for directives based on existence of files on disk"),
-AP_INIT_TAKE1("<IfDirective", start_cond_section, (void *)test_ifdirective_section,
+AP_INIT_RAW_ARGS("<IfDirective", start_cond_section, (void *)test_ifdirective_section,
               EXEC_ON_READ | OR_ALL,
   "Container for directives based on existence of named directive"),
-AP_INIT_TAKE1("<IfSection", start_cond_section, (void *)test_ifsection_section,
+AP_INIT_RAW_ARGS("<IfSection", start_cond_section, (void *)test_ifsection_section,
               EXEC_ON_READ | OR_ALL,
   "Container for directives based on existence of named section"),
 AP_INIT_RAW_ARGS("<DirectoryMatch", dirsection, (void*)1, RSRC_CONF,
index 88e855bbd8403a7515e5c3467f3ba6bc29e4eb65..e659135c211b4a5c5f78ff7e1a38517eed925edd 100644 (file)
@@ -1627,6 +1627,7 @@ AP_DECLARE(int) ap_get_basic_auth_pw(request_rec *r, const char **pw)
 
     t = ap_pbase64decode(r->pool, auth_line);
     r->user = ap_getword_nulls (r->pool, &t, ':');
+    apr_table_setn(r->notes, AP_GET_BASIC_AUTH_PW_NOTE, "1");
     r->ap_auth_type = "Basic";
 
     *pw = t;
@@ -1634,6 +1635,53 @@ AP_DECLARE(int) ap_get_basic_auth_pw(request_rec *r, const char **pw)
     return OK;
 }
 
+AP_DECLARE(apr_status_t) ap_get_basic_auth_components(const request_rec *r,
+                                                      const char **username,
+                                                      const char **password)
+{
+    const char *auth_header;
+    const char *credentials;
+    const char *decoded;
+    const char *user;
+
+    auth_header = (PROXYREQ_PROXY == r->proxyreq) ? "Proxy-Authorization"
+                                                  : "Authorization";
+    credentials = apr_table_get(r->headers_in, auth_header);
+
+    if (!credentials) {
+        /* No auth header. */
+        return APR_EINVAL;
+    }
+
+    if (ap_cstr_casecmp(ap_getword(r->pool, &credentials, ' '), "Basic")) {
+        /* These aren't Basic credentials. */
+        return APR_EINVAL;
+    }
+
+    while (*credentials == ' ' || *credentials == '\t') {
+        credentials++;
+    }
+
+    /* XXX Our base64 decoding functions don't actually error out if the string
+     * we give it isn't base64; they'll just silently stop and hand us whatever
+     * they've parsed up to that point.
+     *
+     * Since this function is supposed to be a drop-in replacement for the
+     * deprecated ap_get_basic_auth_pw(), don't fix this for 2.4.x.
+     */
+    decoded = ap_pbase64decode(r->pool, credentials);
+    user = ap_getword_nulls(r->pool, &decoded, ':');
+
+    if (username) {
+        *username = user;
+    }
+    if (password) {
+        *password = decoded;
+    }
+
+    return APR_SUCCESS;
+}
+
 struct content_length_ctx {
     int data_sent;  /* true if the C-L filter has already sent at
                      * least one bucket on to the next output filter
index 016504d1cdcb026ffecfcf5ad296dfcbdf36bbda..55c32b276b092d7a956fd2547f1b58ed1ab14e9b 100644 (file)
@@ -124,6 +124,8 @@ static int decl_die(int status, const char *phase, request_rec *r)
 AP_DECLARE(int) ap_some_authn_required(request_rec *r)
 {
     int access_status;
+    char *olduser = r->user;
+    int rv = FALSE;
 
     switch (ap_satisfies(r)) {
     case SATISFY_ALL:
@@ -134,7 +136,7 @@ AP_DECLARE(int) ap_some_authn_required(request_rec *r)
 
         access_status = ap_run_access_checker_ex(r);
         if (access_status == DECLINED) {
-            return TRUE;
+            rv = TRUE;
         }
 
         break;
@@ -145,13 +147,14 @@ AP_DECLARE(int) ap_some_authn_required(request_rec *r)
 
         access_status = ap_run_access_checker_ex(r);
         if (access_status == DECLINED) {
-            return TRUE;
+            rv = TRUE;
         }
 
         break;
     }
 
-    return FALSE;
+    r->user = olduser;
+    return rv;
 }
 
 /* This is the master logic for processing requests.  Do NOT duplicate
@@ -263,6 +266,14 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r)
         r->ap_auth_type = r->main->ap_auth_type;
     }
     else {
+        /* A module using a confusing API (ap_get_basic_auth_pw) caused
+        ** r->user to be filled out prior to check_authn hook. We treat
+        ** it is inadvertent.
+        */
+        if (r->user && apr_table_get(r->notes, AP_GET_BASIC_AUTH_PW_NOTE)) { 
+            r->user = NULL;
+        }
+
         switch (ap_satisfies(r)) {
         case SATISFY_ALL:
         case SATISFY_NOSPEC:
index 24062ca111d4718b78140666c64c0cd2c3d01bb6..3c001511be6fdddc545fa7cd37671cb0ff0c5a3c 100644 (file)
@@ -1526,7 +1526,7 @@ AP_DECLARE(const char *) ap_parse_token_list_strict(apr_pool_t *p,
     while (!string_end) {
         const unsigned char c = (unsigned char)*cur;
 
-        if (!TEST_CHAR(c, T_HTTP_TOKEN_STOP)) {
+        if (c && !TEST_CHAR(c, T_HTTP_TOKEN_STOP)) {
             /* Non-separator character; we are finished with leading
              * whitespace. We must never have encountered any trailing
              * whitespace before the delimiter (comma) */
@@ -1600,7 +1600,7 @@ AP_DECLARE(const char *) ap_parse_token_list_strict(apr_pool_t *p,
  */
 AP_DECLARE(const char *) ap_scan_http_field_content(const char *ptr)
 {
-    for ( ; !TEST_CHAR(*ptr, T_HTTP_CTRLS); ++ptr) ;
+    for ( ; *ptr && !TEST_CHAR(*ptr, T_HTTP_CTRLS); ++ptr) ;
 
     return ptr;
 }
@@ -1610,7 +1610,7 @@ AP_DECLARE(const char *) ap_scan_http_field_content(const char *ptr)
  */
 AP_DECLARE(const char *) ap_scan_http_token(const char *ptr)
 {
-    for ( ; !TEST_CHAR(*ptr, T_HTTP_TOKEN_STOP); ++ptr) ;
+    for ( ; *ptr && !TEST_CHAR(*ptr, T_HTTP_TOKEN_STOP); ++ptr) ;
 
     return ptr;
 }
@@ -1620,7 +1620,7 @@ AP_DECLARE(const char *) ap_scan_http_token(const char *ptr)
  */
 AP_DECLARE(const char *) ap_scan_vchar_obstext(const char *ptr)
 {
-    for ( ; TEST_CHAR(*ptr, T_VCHAR_OBSTEXT); ++ptr) ;
+    for ( ; *ptr && TEST_CHAR(*ptr, T_VCHAR_OBSTEXT); ++ptr) ;
 
     return ptr;
 }
@@ -1680,10 +1680,8 @@ AP_DECLARE(int) ap_find_token(apr_pool_t *p, const char *line, const char *tok)
 
     s = (const unsigned char *)line;
     for (;;) {
-        /* find start of token, skip all stop characters, note NUL
-         * isn't a token stop, so we don't need to test for it
-         */
-        while (TEST_CHAR(*s, T_HTTP_TOKEN_STOP)) {
+        /* find start of token, skip all stop characters */
+        while (*s && TEST_CHAR(*s, T_HTTP_TOKEN_STOP)) {
             ++s;
         }
         if (!*s) {
@@ -2685,9 +2683,7 @@ AP_DECLARE(int) ap_parse_form_data(request_rec *r, ap_filter_t *f,
     ap_form_type_t state = FORM_NAME, percent = FORM_NORMAL;
     ap_form_pair_t *pair = NULL;
     apr_array_header_t *pairs = apr_array_make(r->pool, 4, sizeof(ap_form_pair_t));
-
-    char hi = 0;
-    char low = 0;
+    char escaped_char[2] = { 0 };
 
     *ptr = pairs;
 
@@ -2754,30 +2750,13 @@ AP_DECLARE(int) ap_parse_form_data(request_rec *r, ap_filter_t *f,
                     continue;
                 }
                 if (FORM_PERCENTA == percent) {
-                    if (c >= 'a') {
-                        hi = c - 'a' + 10;
-                    }
-                    else if (c >= 'A') {
-                        hi = c - 'A' + 10;
-                    }
-                    else if (c >= '0') {
-                        hi = c - '0';
-                    }
-                    hi = hi << 4;
+                    escaped_char[0] = c;
                     percent = FORM_PERCENTB;
                     continue;
                 }
                 if (FORM_PERCENTB == percent) {
-                    if (c >= 'a') {
-                        low = c - 'a' + 10;
-                    }
-                    else if (c >= 'A') {
-                        low = c - 'A' + 10;
-                    }
-                    else if (c >= '0') {
-                        low = c - '0';
-                    }
-                    c = low | hi;
+                    escaped_char[1] = c;
+                    c = x2c(escaped_char);
                     percent = FORM_NORMAL;
                 }
                 switch (state) {
index 09df8656d8bf04993bdb2725c7664fe924fb69d6..58769a9c89f47b2dad9137cdd844e91f127f8809 100644 (file)
@@ -2465,14 +2465,14 @@ int main(int argc, const char * const argv[])
             case 'B':
                 myhost = apr_pstrdup(cntxt, opt_arg);
                 break;
-#ifdef USE_SSL
-            case 'Z':
-                ssl_cipher = strdup(opt_arg);
-                break;
             case 'm':
                 method = CUSTOM_METHOD;
                 method_str[CUSTOM_METHOD] = strdup(opt_arg);
                 break;
+#ifdef USE_SSL
+            case 'Z':
+                ssl_cipher = strdup(opt_arg);
+                break;
             case 'f':
 #if OPENSSL_VERSION_NUMBER < 0x10100000L
                 if (strncasecmp(opt_arg, "ALL", 3) == 0) {