-*- 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
*) 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>]
*) 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]
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ón 2.5
+Documentación - 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" />
<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ó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="http://httpd.apache.org/docs-project/"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">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> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <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>
<div class="toplang">
<p><span>Idiomas disponibles: </span><a href="./da/" hreflang="da" rel="alternate" title="Dansk"> da </a> |
<a href="./de/" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="./en/" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="./es/" title="Español"> es </a> |
-<a href="./fr/" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="./es/" title="Español"> es </a> |
+<a href="./fr/" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="./ja/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
-<a href="./tr/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
+<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
+<a href="./tr/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="./zh-cn/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </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=""List-Post"" 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ón 2.5" type="hidden" /><input name="as_oq" value="" type="hidden" /><input name="as_eq" value=""List-Post"" 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>
<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ó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ó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="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 í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í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ó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="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ó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ón bá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ó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">Índice de Tutoriales </a></li>
+<li><a href="howto/auth.html">Autenticación y Autorizació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á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ía de configuración de Proxy Inverso</a></li>
+<li><a href="howto/http2.html">guí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í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>
</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ón para Desarrolladores</a></li>
+<li><a href="http://httpd.apache.org/docs-project/">Contribuir en la Documentación</a></li>
<li><a href="misc/">Otras Notas</a></li>
<li><a href="http://wiki.apache.org/httpd/">Wiki</a></li>
</ul>
<p><span>Idiomas disponibles: </span><a href="./da/" hreflang="da" rel="alternate" title="Dansk"> da </a> |
<a href="./de/" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="./en/" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="./es/" title="Español"> es </a> |
-<a href="./fr/" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="./es/" title="Español"> es </a> |
+<a href="./fr/" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="./ja/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
-<a href="./tr/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
+<a href="./pt-br/" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
+<a href="./tr/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="./zh-cn/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </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é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();
}
<?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 -->
<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>
<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>
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <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"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/misc/security_tips.html" title="English"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <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"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <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"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div></div>
<div class="bottomlang">
<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <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"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" title="Türkçe"> tr </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"> en </a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/security_tips.html" title="Türkçe"> tr </a></p>
<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>
<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>
<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>
<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>
<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>
<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>
<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"><Else></code> applique
les directives qu'elle contient si et seulement si les conditions
<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"><ElseIf></code> applique
les directives qu'elle contient si et seulement si d'une part la
<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"><If></code> évalue une
expression à la volée, et applique les directives qu'elle contient
<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"><If></code>
- dans une autre (la section <code class="directive"><If></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,
<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>
<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>
<?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
<?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-->
<!--
<?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 -->
<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
<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
<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
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,
<?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
<?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>
<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"> A </a> | <a href="#B"> B </a> | <a href="#C"> C </a> | <a href="#D"> D </a> | <a href="#E"> E </a> | <a href="#F"> F </a> | <a href="#H"> H </a> | <a href="#I"> I </a> | <a href="#J"> J </a> | <a href="#L"> L </a> | <a href="#M"> M </a> | <a href="#N"> N </a> | <a href="#P"> P </a> | <a href="#R"> R </a> | <a href="#S"> S </a> | <a href="#U"> U </a> | <a href="#V"> V </a> | <a href="#W"> W </a> | <a href="#X"> X </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>
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
<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"> en </a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English"> en </a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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&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>
--- /dev/null
+<?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="<-" alt="<-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <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"> en </a> |
+<a href="../es/mod/mod_access_compat.html" title="Español"> es </a> |
+<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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"><Directory></a></code>,
+ <code class="directive"><a href="../mod/core.html#files"><Files></a></code>, y
+ <code class="directive"><a href="../mod/core.html#location"><Location></a></code> 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"><Limit></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__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_access_compat">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&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
+<Directory "/docroot">
+ Order Deny,Allow
+ Deny from all
+ Allow from env=let_me_in
+</Directory></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 & 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"><Directory "/www">
+ Order Allow,Deny
+</Directory></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"><Location></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"><Directory></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"><Directory "/var/www/private">
+ Require valid-user
+</Directory>
+
+<Directory "/var/www/private/public">
+ Allow from all
+ Satisfy Any
+</Directory></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"><Limit></a></code> y <code class="directive"><a href="../mod/core.html#limitexcept"><LimitExcept></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"> en </a> |
+<a href="../es/mod/mod_access_compat.html" title="Español"> es </a> |
+<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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&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
<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"> en </a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_access_compat.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_access_compat.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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&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>
<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"> en </a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_access_compat.html" title="Japanese"> ja </a></p>
</div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_access_compat.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_access_compat.html" title="Japanese"> ja </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&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>
--- /dev/null
+<?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
+<Directory "/docroot">
+ Order Deny,Allow
+ Deny from all
+ Allow from env=let_me_in
+</Directory>
+ </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 & 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">
+<Directory "/www">
+ Order Allow,Deny
+</Directory>
+ </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">
+<Directory "/var/www/private">
+ Require valid-user
+</Directory>
+
+<Directory "/var/www/private/public">
+ Allow from all
+ Satisfy Any
+</Directory>
+ </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>
<variants>
<variant>en</variant>
+ <variant>es</variant>
<variant>fr</variant>
<variant outdated="yes">ja</variant>
</variants>
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
<div class="toplang">
<p><span>Verfügbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="bottomlang">
<p><span>Verfügbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="toplang">
<p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
--- /dev/null
+<?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="<-" alt="<-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <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"> de </a> |
+<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" title="Español"> es </a> |
+<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
+<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </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__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_actions">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&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"><Location "/news">
+ SetHandler news-handler
+ Action news-handler /cgi-bin/news.cgi virtual
+</Location></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"> de </a> |
+<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" title="Español"> es </a> |
+<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
+<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </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&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
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="toplang">
<p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
<div class="toplang">
<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" title="Korean"> ko </a></p>
<div class="bottomlang">
<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/mod_actions.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../es/mod/mod_actions.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_actions.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_actions.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_actions.html" title="Korean"> ko </a></p>
--- /dev/null
+<?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">
+<Location "/news">
+ SetHandler news-handler
+ Action news-handler /cgi-bin/news.cgi virtual
+</Location>
+ </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
<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>
<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>
<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>
<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>
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>
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>
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>
-<?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érieures
+<compatibility>Disponible dans les version 2.4 et supérieures
d'Apache</compatibility>
<summary>
- <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
+ <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é
- 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_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é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>
+ <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>
<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é à accéder à 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>
<section id="reqgroup"><title>Require dbd-group</title>
- <p>Cette directive permet de spécifier à quel groupe un utilisateur
- doit appartenir pour obtenir l'autorisation d'accè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écifier une requête à exécuter pour
- indiquer que l'utilisateur s'est authentifié.</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écifier une requête à exécuter pour
- indiquer que l'utilisateur s'est déconnecté.</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>
</section>
<section id="login">
-<title>Connexion s'appuyant sur une base de données</title>
+<title>Connexion s'appuyant sur une base de données</title>
<p>
-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
+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écessaires).</p>
+nécessaires).</p>
<p>Pour cela, il faut definir deux directives <directive
-module="mod_authz_core">Require</directive> spéciales : <code>Require
-dbd-login</code> et <code>Require dbd-logout</code>. Pour les dé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é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.
+<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éclencheur pour utiliser des fonctions d'ouverture et de
-fermeture de sessions côté client.</p>
+déclencheur pour utiliser des fonctions d'ouverture et de
+fermeture de sessions côté client.</p>
</section>
<section id="example">
AuthName Team
AuthBasicProvider dbd
- # requê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'"
# configuration de mod_authz_dbd
AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
- # lorsqu'un utilisateur échoue dans sa tentative d'authentification ou
- # d'autorisation, on l'invite à 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
<Files "login.html">
- # il n'est pas nécessaire que l'utilisateur soit déjà connecté !
+ # 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écute une requê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ès une connexion réussie
+ # après une connexion réussie
AuthzDBDLoginToReferer On
</Files>
<Files "logout.html">
- # le processus de déconnexion dbd exécute une requête pour
- # enregistrer la dé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"
</Files>
</section>
<section id="security">
-<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
+<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éférez à la documentation de
- <module>mod_dbd</module> pour plus d'informations à propos de la
- sécurité 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éfinit la requête SQL pour l'opération
+<description>Définit la requête SQL pour l'opération
requise</description>
-<syntax>AuthzDBDQuery <var>requê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écifier une requête SQL à exécuter. Le but de cette requête dé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écifie
- une requête permettant de rechercher les groupes d'appartenance de
- l'utilisateur courant. Ceci correspond à la fonctionnalité 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è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
+ 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
</highlight>
</li>
<li>Avec la directive <code>Require dbd-login</code> ou
- <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>.
+ <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"
</li>
</ul>
<p>Dans tous les cas, 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>
+ 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é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>
+<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é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
+ <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ère colonne du premier enregistrement renvoyé par la
- requête doit contenir une chaîne de caractères correspondant à 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és. Si aucun enregistrement n'est renvoyé, le client ne
- sera pas redirigé.</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éfinies.</p>
+ sur cette directive si les deux sont définies.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthzDBDLoginToReferer</name>
-<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>
+<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é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ê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>
+ 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>
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>
<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>
<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>
<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"><Directory <var>directory-path</var>>
... </Directory></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>
<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>
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>
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
* 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
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
*/
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:
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
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;
}
}
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
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");
else {
h2_beam_log(task->output.beam, m->c, APLOG_TRACE1,
"h2_task_destroy, destroy slave");
- slave->sbh = NULL;
h2_slave_destroy(slave);
}
}
"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;
+ }
}
}
}
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 */
* @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
* 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 */
#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
char *perdir;
backrefinfo briRR;
backrefinfo briRC;
+ apr_pool_t *temp_pool;
} rewrite_ctx;
/*
* 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);
}
/* 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) {
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);
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;
}
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);
/*
* 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;
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:
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);
}
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);
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.
*/
}
}
else if (!rc) {
+ if (ctx->temp_pool) {
+ apr_pool_clear(ctx->temp_pool);
+ }
return 0;
}
/* 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));
}
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
*/
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];
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 &&
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 {
}
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);
}
* 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;
"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;
* 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) {
/* 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. */
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) {
"stapling_renew_response: responder error");
if (mctx->stapling_fake_trylater) {
*prsp = OCSP_response_create(OCSP_RESPONSE_STATUS_TRYLATER, NULL);
+ *pok = FALSE;
}
else {
goto done;
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;
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);
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;
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,
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;
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
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:
access_status = ap_run_access_checker_ex(r);
if (access_status == DECLINED) {
- return TRUE;
+ rv = TRUE;
}
break;
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
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:
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) */
*/
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;
}
*/
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;
}
*/
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;
}
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) {
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;
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) {
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) {