httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lgilbern...@apache.org
Subject svn commit: r1789828 [3/4] - /httpd/httpd/branches/2.4.x/docs/manual/howto/
Date Sat, 01 Apr 2017 17:29:47 GMT
Added: httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.es
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.es?rev=1789828&view=auto
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.es (added)
+++ httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.es [utf-8] Sat Apr  1 17:29:47 2017
@@ -0,0 +1,594 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
+<!-- English Revision: 1773247 -->
+<!-- Spanish translation : Daniel Ferradal -->
+<!-- Reviewed by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]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.
+-->
+
+<manualpage metafile="cgi.xml.meta">
+	<parentdocument href="./">How-To / Tutoriales</parentdocument>
+	<title>Tutorial de Apache: Contenido Dinámico con CGI</title>
+	
+    <section id="intro">
+	    <title>Introducción</title>
+		<related>
+			<modulelist>
+		        <module>mod_alias</module>
+		        <module>mod_cgi</module>
+		        <module>mod_cgid</module>
+			</modulelist>
+
+			<directivelist>
+				<directive module="mod_mime">AddHandler</directive>
+       			<directive module="core">Options</directive>
+       			<directive module="mod_alias">ScriptAlias</directive>
+    		</directivelist>
+    	</related>
+
+    	<p>CGI (Common Gateway Interface) es un método por el cual
+		un servidor web puede interactuar con programas externos de 
+		generación de contenido, a ellos nos referimos comúnmente como 
+		programas CGI o scripts CGI. Es el método más común y sencillo de
+        mostrar contenido dinámico en su sitio web. Este documento es una 
+		introducción para configurar CGI en su servidor web Apache, y de
+		iniciación para escribir programas CGI.</p>
+	</section>
+
+	<section id="configuring">
+		<title>Configurando Apache para permitir CGI</title>
+
+        <p>Para conseguir que sus programas CGI funcionen correctamente,
+	    deberá configurar Apache para que permita la ejecución de CGI. Hay
+	    distintas formas de hacerlo.</p>
+
+        <note type="warning">Nota: Si Apache ha sido compilado con soporte
+        de módulos compartidos, necesitará que el módulo de CGI esté cargado;
+        en su <code>httpd.conf</code> tiene que asegurarse de que la directiva
+        <directive module="mod_so">LoadModule</directive>
+        no ha sido comentada. Una directiva configurada correctamente sería así:
+            
+            <highlight language="config">
+                LoadModule cgid_module modules/mod_cgid.so
+            </highlight>
+
+        En Windows, o si usa un mpm que no es multihilo, como prefork, una 
+        directiva configurada correctamente podría definirse así: 
+
+        <highlight language="config">
+            LoadModule cgi_module modules/mod_cgi.so
+        </highlight></note>
+
+        <section id="scriptalias">
+            <title>ScriptAlias</title>
+
+            <p>La directiva
+            <directive module="mod_alias">ScriptAlias</directive>
+            indica a Apache que un directorio se ha configurado específicamente
+            para programas CGI. Apache asumirá que cada fichero en este 
+            directorio es un programa CGI, e intentará ejecutarlos cuando un
+            cliente solicita este recurso.</p>
+        
+            <p>La directiva 
+            <directive module="mod_alias">ScriptAlias</directive> se puede 
+            definir así:</p>
+
+            <highlight language="config">
+                ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
+            </highlight>
+        
+            <p>El ejemplo que se muestra es de un archivo de configuración
+            <code>httpd.conf</code> por defecto si usted instaló Apache
+            en la ubicación por defecto. La directiva
+            <directive module="mod_alias">ScriptAlias</directive> es muy 
+            parecida a la directiva <directive module="mod_alias">Alias</directive>,
+            ésta define un prefijo de URL que se enlaza a un directorio 
+            en particular. <directive>Alias</directive> y
+            <directive>ScriptAlias</directive> se usan generalmente para 
+            directorios que se encuentran fuera del directorio 
+            <directive module="core">DocumentRoot</directive>. La diferencia
+            entre <directive>Alias</directive> y <directive>ScriptAlias</directive>
+            es que en <directive>ScriptAlias</directive> cualquier elemento
+            debajo de ese prefijo de URL será considerado un programa CGI. Así, 
+            el ejemplo de más arriba le indica a Apache que
+            cualquier solicitud para un recurso que comience con 
+            <code>/cgi-bin/</code> debería servirse desde el directorio
+            <code>/usr/local/apache2/cgi-bin/</code>, y debería tratarse como un
+            programa CGI.</p>
+
+            <p>Por ejemplo, si se solicita la URL
+            <code>http://www.example.com/cgi-bin/test.pl</code>,
+            Apache intentará ejecutar el archivo
+            <code>/usr/local/apache2/cgi-bin/test.pl</code> y dar
+            el resultado. Por supuesto el archivo debe existir y ser ejecutable, 
+            y dar el resultado de una manera específica o Apache devolverá
+            un mensaje de error.</p>
+        </section>
+
+        <section id="nonscriptalias">
+            <title>CGI fuera de directorios ScriptAlias</title>
+
+            <p>Los programas CGI habitualmente se restringen a los directorios de
+            <directive module="mod_alias">ScriptAlias</directive> por razones de
+            seguridad. De esta manera, los administradores pueden controlar de una
+            manera más segura quien puede ejecutar programas CGI. Aun así, si no
+            se toman suficientes precauciones, no hay ninguna razón por la que
+            programas CGI no se puedan ejecutar desde directorios seleccionados de 
+            manera arbitraria. Por ejemplo, quizás quiera permitir que usuarios del
+            sistema tengan contenido web en sus directorios home con la directiva
+            <directive module="mod_userdir">UserDir</directive>. Si quieren 
+            tener sus propios programas CGI, pero no tienen acceso al directorio 
+            principal <code>cgi-bin</code>, necesitarán ser capaces de 
+            ejecutar sus scripts CGI en algún otro sitio.</p>
+      
+            <p>Hay dos pasos a seguir para permitir la ejecución CGI en directorios
+            seleccionados de manera arbitraria. Primero, el handler 
+            <code>cgi-script</code> debe estar activado usando la directiva 
+            <directive module="mod_mime">AddHandler</directive> o la directiva 
+            <directive module="core">SetHandler</directive>. Segundo, el parámetro
+            <code>ExecCGI</code> debe estar definido en la directiva
+            <directive module="core">Options</directive>.</p>
+        </section>
+
+        <section id="options">
+            <title>Usando Options de manera explícita para permitir ejecución de 
+            CGI</title>
+
+            <p>Puede usar la directiva 
+            <directive module="core">Options</directive>, en el archivo de 
+            configuración principal para especificar que se permite la ejecución 
+            de CGI en un directorio en particular:</p>
+
+            <highlight language="config">
+&lt;Directory "/usr/local/apache2/htdocs/somedir"&gt;
+    Options +ExecCGI
+&lt;/Directory&gt;
+            </highlight>
+            
+            <p>Esta directiva de aquí arriba le indica a Apache que debe 
+            permitir la ejecución de archivos CGI. También necesitará indicarle 
+            al servidor que los archivos son archivos CGI. La directiva 
+            <directive module="mod_mime">AddHandler</directive> le indica al 
+            servidor que debe tratar a todos los archivos con la extensión 
+            <code>cgi</code> o <code>pl</code> como programas CGI:</p>
+
+            <highlight language="config">
+                AddHandler cgi-script .cgi .pl
+            </highlight>
+        </section>
+
+        <section id="htaccess">
+            <title>Ficheros .htaccess</title>
+
+            <p>El <a href="htaccess.html">tutorial <code>.htaccess</code></a>
+            enseña como activar programas CGI si no tienes acceso a 
+            <code>httpd.conf</code>.</p>
+        </section>
+
+        <section id="userdir">
+            <title>Directorios de Usuario</title>
+
+            <p>Para permitir la ejecución de programas CGI para cualquier 
+            archivo que acabe en <code>.cgi</code> en directorios de usuario, 
+            puedes usar la siguiente configuración:</p>
+
+            <highlight language="config">
+&lt;Directory "/home/*/public_html"&gt;
+    Options +ExecCGI
+    AddHandler cgi-script .cgi
+&lt;/Directory&gt;
+            </highlight>
+
+            <p>Si quiere designar un subdirectorio <code>cgi-bin</code> dentro 
+            de un directorio de usuario en el que todos los ficheros serán 
+            tratados como un programa CGI, puede usar lo siguiente:</p>
+
+            <highlight language="config">
+&lt;Directory "/home/*/public_html/cgi-bin"&gt;
+    Options ExecCGI
+    SetHandler cgi-script
+&lt;/Directory&gt;
+            </highlight>
+        </section>
+    </section>
+
+    <section id="writing">
+        <title>Escribiendo un programa CGI</title>
+
+        <p>Hay dos diferencias principales entre programación ``regular'' y 
+        programación en CGI.</p>
+
+        <p>Primera, el resultado al completo de tu programa CGI debe estar 
+        precedido de una cabecera <glossary>MIME-type</glossary>. Esta
+        cabecera HTTP le indica al cliente que tipo de contenido está
+        recibiendo. La mayor parte de las veces, ésto será algo como:</p>
+
+        <example>
+            Content-type: text/html
+        </example>
+
+        <p>Segunda, el resultado debe estar en formato HTML, o cualquier 
+        otro formato que su navegador sea capaz de mostrar. La mayor
+        parte de las veces, será HTML, pero otras escribirá un programa
+        CGI que devuelve una imagen gif, u otro contenido no-HTML.</p>
+
+        <p>Aparte de estas dos cosas, escribir un programa en CGI se 
+        parecerá bastante a cualquier otro programa que vaya a escribir.
+        </p>
+
+
+        <section id="firstcgi">
+            <title>Su primer programa CGI</title>
+
+            <p>A continuación podrá ver un ejemplo de programa CGI que muestra
+            una línea de texto en su navegador. Escriba lo siguiente, 
+            guárdelo en un archivo con el nombre <code>first.pl</code>, y 
+            póngalo en su directorio <code>cgi-bin</code>.</p>
+
+            <highlight language="perl">
+#!/usr/bin/perl
+print "Content-type: text/html\n\n";
+print "Hola, Mundo.";
+            </highlight>
+
+            <p>Incluso si Perl no le resulta familiar, podrá ver lo que está
+            ocurriendo aquí. La primera línea le dice a Apache (o a
+            cualquier shell en la que se esté ejecutando) que este programa
+            puede ejecutarse con el intérprete en la ubicación
+            <code>/usr/bin/perl</code>. La segunda línea imprime la
+            declaración de Content-Type que mencionamos antes, seguida de 
+            dos pares de retornos de carro. Esto pone una línea en blanco 
+            después de la cabecera para indicar el final de las cabeceras
+            HTTP, y el comienzo del cuerpo del contenido. La tercera 
+            imprime la cadena de caracteres "Hola, Mundo.". Y ese es el 
+            final del programa.</p>
+
+            <p>Si lo abre con su navegador favorito y le dice que solicite la 
+            dirección</p>
+
+            <example>
+                http://www.example.com/cgi-bin/first.pl
+            </example>
+
+            <p>o donde quiera que pusiera el archivo, verá una línea
+            <code>Hola, Mundo.</code> aparecerán la ventana del navegador. No es 
+            muy emocionante, pero una vez que consiga que funcione podrá hacer 
+            lo mismo con casi cualquier programa.</p>
+        </section>
+    </section>
+
+    <section id="troubleshoot">
+        <title>¡Pero todavía no funciona!</title>
+
+        <p>Hay 4 cosas básicas que puede llegar a ver en su navegador cuando
+        intenta acceder a un programa CGI desde la web:</p>
+
+        <dl>
+            <dt>El resultado del programa CGI</dt>
+            <dd>¡Genial! Esto indica que todo funcionó correctamente. Si el
+            resultado es correcto, pero el navegador no lo procesa
+            correctamente, asegúrese de que tiene especificado 
+            correctamente el <code>Content-Type</code> en su programa 
+            CGI.</dd>
+
+            <dt>El código fuente de su programa CGI o un mensaje del tipo 
+            "POST Method Not Allowed".</dt>
+
+            <dd>Eso significa que no ha configurado Apache de manera
+            apropiada para interpretar su programa CGI. Relea la sección
+            de <a href="#configuring">Configurando Apache</a> e intente
+            encontrar qué le falta.</dd>
+
+            <dt>Un mensaje que empieza con "Forbidden"</dt>
+            <dd>Eso significa que hay un problema de permisos. Compruebe el
+            <a href="#errorlogs">Log de Errores de Apache</a> y la
+            sección de más abajo de <a href="#permissions">Permisos de
+            Fichero</a>.</dd>
+
+            <dt>Un mensaje indicando "Internal Server Error"</dt>
+            <dd>Si comprueba el <a href="#errorlogs">Log de errores de
+            Apache</a>, probablemente encontrará que indica "Premature 
+            end of script headers", posiblemente acompañado de otro 
+            mensaje de error generado por su programa CGI. En este caso, 
+            querrá comprobar cada una de las secciones de más adelante 
+            para ver qué impide que su programa CGI genere las cabeceras 
+            HTTP adecuadas.</dd>
+            </dl>
+
+        <section id="permissions">
+            <title>Permisos de Fichero</title>
+
+            <p>Recuerde que el servidor no se ejecuta con su usuario. Es decir,
+            cuando el servidor arranca, está funcionando con un usuario sin
+            privilegios, generalmente el usuario <code>nobody</code>, o
+            <code>www-data</code>, así que necesitará permisos extra para
+            ejecutar los archivos de los que usted es dueño. Generalmente, 
+            el método para dar permisos suficientes para que se pueda 
+            ejecutar con <code>nobody</code> es dar permisos de ejecución a 
+            todo el mundo en el fichero:</p>
+
+            <example>
+                chmod a+x first.pl
+            </example>
+
+            <p>Además, si su programa lee desde o escribe a cualquier otro/s
+            archivo/s, esos archivos necesitarán tener los permisos correctos
+            para permitir esas acciones.</p>
+
+        </section>
+
+        <section id="pathinformation">
+            <title>Información de Ruta y Entorno</title>
+
+            <p>Cuando ejecuta un programa desde la línea de comandos, usted tiene
+            cierta información que se le pasa a la shell sin que usted se
+            percate de ello. Por ejemplo, usted tiene un <code>PATH</code>,
+            que le indica a la shell dónde debe buscar archivos a los que usted
+            hace referencia.</p>
+
+            <p>Cuando un programa se ejecuta a través del servidor web como un
+            programa CGI, puede que no tenga el mismo <code>PATH</code>. 
+            Cualquier programa que invoque desde su programa CGI (como por
+            ejemplo <code>sendmail</code>) necesitará que se le indique la
+            ruta absoluta, así la shell puede encontrarlos cuando intenta 
+            ejecutar su programa CGI.</p>
+
+            <p>Una manifestación común de esto es la ruta del intérprete del 
+            script (a menudo <code>perl</code>) indicado en la primera línea
+            de su programa CGI, que parecerá algo como:</p>
+
+            <highlight language="perl">
+                #!/usr/bin/perl
+            </highlight>
+
+            <p>Asegúrese de que éste es de hecho el path de su intérprete.</p>
+            <note type="warning">
+            Cuando edita scripts CGI en Windows, los caracteres de retorno de
+            carro podrían añadirse a la línea donde se especifica el intérprete. 
+            Asegúrese de que los archivos se transfieren al servidor en modo 
+            ASCII. Fallar en esto puede acabar con avisos del tipo "Command not 
+            found" del Sistema Operativo, debido a que éste no reconoce los 
+            caracteres de final de línea interpretados como parte del nombre
+            de fichero del intérprete.
+            </note>
+        </section>
+
+        <section id="missingenv">
+            <title>Faltan Variables de Entorno</title>
+
+            <p>Si su programa CGI depende de <a
+            href="#env">variables de entorno</a> no estándar, necesitará
+            asegurarse de que Apache pasa esas variables.</p>
+
+            <p>Cuando no encuentra ciertas cabeceras HTTP del entorno, asegúrese 
+            de que están formateadas según el 
+            <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>, 
+            sección 4.2: Nombres de Cabeceras deben empezar con una letra, 
+            seguida solo de letras, números o guión. Cualquier cabecera 
+            que no cumpla esta regla será ignorada de manera silenciosa.</p>
+
+        </section>
+
+        <section id="syntaxerrors">
+            <title>Errores de Programa</title>
+
+            <p>La mayor parte de las veces cuando un programa CGI falla, es por un 
+            problema en el programa mismo. Esto ocurre generalmente cuando se 
+            maneja bien con "esto del CGI", y ya no comete los dos errores
+            mencionados más arriba. Lo primero que hay que hacer es asegurarse
+            de que su programa se ejecuta correctamente en línea de comandos 
+            antes de probarlo a través del servidor web.  Por ejemplo, 
+            intente:</p>
+
+            <example>
+                cd /usr/local/apache2/cgi-bin<br/>
+                ./first.pl
+            </example>
+
+            <p>(No llame al intérprete de <code>perl</code>. La consola y Apache 
+            tienen que poder encontrar el intérprete usando línea 
+            <a href="#pathinformation">línea de información</a> en la primera 
+            línea del script.)</p>
+
+            <p>Lo primero que debe ver escrito por su programa es un conjunto de 
+            cabeceras HTTP, incluyendo el <code>Content-Type</code>,
+            seguido de una línea en blanco.  Si ve alguna otra cosa, Apache
+            devolverá el error <code>Premature end of script headers</code> si
+            intenta lanzar el script en el servidor web. Vea 
+            <a href="#writing">Escribiendo un programa CGI</a> más arriba para
+            más detalle.</p>
+        </section>
+
+        <section id="errorlogs">
+            <title>Log de Errores</title>
+
+            <p>El log de errores es su amigo. Cualquier cosa que vaya mal generará 
+            un mensaje en el log de errores. Debería mirar siempre ahí primero. 
+            Si el lugar donde está alojando su sitio web no permite que acceda
+            al log de errores, probablemente debería alojarlo en otro sitio.
+            Aprenda a leer el log de errores y se dará cuenta de que enseguida
+            averiguará el motivo del error y lo solucionará rápidamente.</p>
+        </section>
+
+        <section id="suexec">
+            <title>Suexec</title>
+
+            <p>El programa de soporte <a href="../suexec.html">suexec</a> permite
+            que programas CGI se ejecuten con permisos de usuario distintos,
+            dependiendo del virtualhost o el directorio home donde se 
+            encuentren. Suexec tiene una comprobación de permisos muy estricta, 
+            y cualquier fallo en esa comprobación dará como resultado un error
+            con el mensaje <code>Premature end of script headers</code>.</p>
+
+            <p>Para comprobar si está usando Suexec, ejecute 
+            <code>apachectl -V</code> y compruebe la ubicación de 
+            <code>SUEXEC_BIN</code>. Si Apache encuentra un binario 
+            <program>suexec</program> al arrancar, suexec se activará.</p>
+
+            <p>A menos que comprenda suxec perfectamente, no debería usarlo.
+            Para desactivar suexec, basta con eliminar el binario 
+            <program>suexec</program> al que apunta <code>SUEXEC_BIN</code> y 
+            reiniciar el servidor. Si después de leer sobre 
+            <a href="../suexec.html">suexec</a> todavía quiere usarlo, entonces
+            ejecute <code>suexec -V</code> para encontrar la ubicación del 
+            fichero log de suexec, y use ese log para encontrar que política no
+            está cumpliendo.</p>
+        </section>
+    </section>
+
+    <section id="behindscenes">
+        <title>¿Qué ocurre entre bastidores?</title>
+
+        <p>En cuanto tenga conocimiento avanzado de programación CGI, le será 
+        útil comprender más de lo que ocurre entre bastidores. 
+        Específicamente, cómo el navegador y el servidor se comunican el uno
+        con el otro. Porque aunque esté muy bien escribir un programa que 
+        diga "Hola, Mundo.", no tiene una gran utilidad.</p>
+
+        <section id="env">
+            <title>Variables de Entorno</title>
+
+            <p>Las variables de entorno son valores que están ahí cuando 
+            usa el ordenador. Son cosas útiles como el path (donde su ordenador
+            busca el archivo específico que se lanza cuando usted escribe un 
+            comando), su nombre de usuario, el tipo de terminal que usa, etc. 
+            Para una lista completa de la variables de entorno normales que se 
+            se usan en su día a día escriba <code>env</code> en la línea de 
+            comandos.</p>
+
+            <p>Durante la transacción CGI, el servidor y el navegador también 
+            configuran variables de entorno, y así pueden comunicarse entre 
+            ellos. Cosas como el tipo de navegador (Netscape, IE, Lynx), el tipo
+            de servidor (Apache, IIS, WebSite), el nombre del programa CGI que
+            se está ejecutando, etc.</p>
+
+            <p>Estas variables están disponibles para el programador de CGI, y son 
+            la mitad de la historia de la comunicación cliente-servidor. La 
+            lista completa de las variables necesarias se encuentra en 
+            <a href="http://www.ietf.org/rfc/rfc3875">el RFC de Common Gateway
+            Interface</a>.</p>
+
+            <p>Este sencillo programa CGI en Perl mostrará todas las variables 
+            de entorno que se están pasando entre el cliente y el navegador. Dos
+            programas similares están incluidos en el directorio 
+            <code>cgi-bin</code> de la distribución de Apache. Tenga en cuenta
+            que algunas variables son necesarias mientras que otras son 
+            opcionales, así que es posible que vea algunas variables que no 
+            están en la lista oficial. Adicionalmente, Apache aporta distintas
+            maneras diferentes para que pueda
+            <a href="../env.html">añadir sus variables de entorno</a> a las 
+            básicas que se proveen por defecto.</p>
+
+            <highlight language="perl">
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+print "Content-type: text/html\n\n";
+          
+foreach my $key (keys %ENV) {
+    print "$key --&gt; $ENV{$key}&lt;br&gt;";
+}
+            </highlight>
+        </section>
+
+        <section id="stdin">
+            <title>STDIN y STDOUT</title>
+
+            <p>Otra comunicación entre el servidor y el cliente ocurre en la 
+            entrada estándar (<code>STDIN</code>) y la salida estándar 
+            (<code>STDOUT</code>). En el contexto normal de cada día, 
+            <code>STDIN</code> es la entrada con el teclado, o un fichero que se 
+            le da a un programa para que actúe sobre él, y <code>STDOUT</code>
+            generalmente es la consola o la pantalla.</p>
+
+            <p>Cuando hace <code>POST</code> con un formulario de web a un programa 
+            CGI, los datos en ese formulario se empaquetan en un formato especial
+            que se entrega a su programa CGI en el <code>STDIN</code>.
+            Entonces el programa puede procesar la información como si le llegara
+            desde el teclado, o desde un fichero.</p>
+
+            <p>El "formato especial" es muy sencillo. Un nombre de campo y su 
+            valor se asocian juntos con el signo igual (=), y pares de valores 
+            se asocian juntos con el ampersand ó et en español (&amp;). 
+            Caracteres inconvenientes como los espacios, ampersands y signos de 
+            igual, se convierten en su equivalente hexadecimal para no impidan 
+            el funcionamiento correcto del programa. La cadena de datos al 
+            completo será algo como:</p>
+
+  <example>
+        name=Rich%20Bowen&amp;city=Lexington&amp;state=KY&amp;sidekick=Squirrel%20Monkey
+  </example>
+
+            <p>A veces tendrá este tipo de cadena de caracteres al final de una 
+            URL. Cuando esto ocurre, el servidor pone esa cadena en una variable 
+            de entorno que se llama <code>QUERY_STRING</code>. Esto se llama 
+            solicitud <code>GET</code>. Su formulario HTML especifica si se usa 
+            un <code>GET</code> o un <code>POST</code> para entregar la 
+            información, configurando el atributo <code>METHOD</code> en la 
+            etiqueta <code>FORM</code>.</p>
+
+            <p>Su programa es el responsable de convertir esa cadena de 
+            caracteres en información útil. Afortunadamente, hay librerías y 
+            módulos disponibles que ayudan a procesar la información, así como a 
+            gestionar los distintos aspectos de su programa CGI.</p>
+        </section>
+    </section>
+
+    <section id="libraries">
+        <title>Módulos/librerías CGI</title>
+
+        <p>Cuando escribe programas CGI, debería considerar usar una librería de
+        código, o módulo, para hacer todo el trabajo más arduo por usted.
+        Esto lleva a tener menos errores y un desarrollo de código más 
+        rápido.</p>
+
+        <p>Si está escribiendo un programa CGI en Perl, existen módulos 
+        disponibles en <a href="http://www.cpan.org/">CPAN</a>. El módulo más
+        conocido para este propósito es <code>CGI.pm</code>. Quizás quiera
+        considerar <code>CGI::Lite</code>, que implementa una funcionalidad 
+        mínima, que es todo lo que se necesita en la mayoría de los programas.</p>
+
+        <p>Si está escribiendo programas CGI en C, hay varidad de opciones. Una
+        de estas es la librería <code>CGIC</code>, de
+        <a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>.
+        </p>
+    </section>
+
+    <section id="moreinfo">
+        <title>Para más información</title>
+
+        <p>La especificación actual de CGI está disponible en el
+        <a href="http://www.ietf.org/rfc/rfc3875">RFC de Common Gateway
+        Interface</a>.</p>
+
+        <p>Cuando envíe una pregunta sobre un problema de CGI, o bien a una 
+        lista de correo, o a un grupo de noticias, asegúrese de que facilita suficiente
+        información de lo que ha ocurrido, de lo que espera que ocurra, y de 
+        lo que está ocurriendo en su lugar que es diferente, el servidor que 
+        está ejecutando, en qué lenguaje CGI está hecho su programa, y si es
+        posible, el código que falla. Esto hará encontrar el problema mucho más 
+        fácil.</p>
+
+        <p>Tenga en cuenta que las preguntas sobre problemas CGI 
+        <strong>nunca</strong> deberían enviarse a la base de datos de bugs de
+        bugs de Apache a menos que esté seguro de haber encontrado un 
+        problema en el código fuente de Apache.</p>
+    </section>
+</manualpage>

Modified: httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.meta?rev=1789828&r1=1789827&r2=1789828&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.meta (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/howto/cgi.xml.meta Sat Apr  1 17:29:47 2017
@@ -8,6 +8,7 @@
 
   <variants>
     <variant>en</variant>
+    <variant>es</variant>
     <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>

Modified: httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html?rev=1789828&r1=1789827&r2=1789828&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html Sat Apr  1 17:29:47 2017
@@ -4,6 +4,10 @@ URI: htaccess.html.en
 Content-Language: en
 Content-type: text/html; charset=ISO-8859-1
 
+URI: htaccess.html.es
+Content-Language: es
+Content-type: text/html; charset=ISO-8859-1
+
 URI: htaccess.html.fr
 Content-Language: fr
 Content-type: text/html; charset=ISO-8859-1

Added: httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html.es
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html.es?rev=1789828&view=auto
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html.es (added)
+++ httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.html.es Sat Apr  1 17:29:47 2017
@@ -0,0 +1,464 @@
+<?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>Tutorial del Servidor Apache HTTP: Ficheros .htaccess - Servidor Apache HTTP Versi&#243;n 2.4</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 id="manual-page"><div id="page-header">
+<p class="menu"><a href="../mod/">M&#243;dulos</a> | <a href="../mod/directives.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p>
+<p class="apache">Versi&#243;n 2.4 del Servidor HTTP Apache</p>
+<img alt="" src="../images/feather.png" /></div>
+<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentaci&#243;n</a> &gt; <a href="../">Versi&#243;n 2.4</a> &gt; <a href="./">How-To / Tutoriales</a></div><div id="page-content"><div id="preamble"><h1>Tutorial del Servidor Apache HTTP: Ficheros .htaccess</h1>
+<div class="toplang">
+<p><span>Idiomas disponibles: </span><a href="../en/howto/htaccess.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/howto/htaccess.html" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
+<a href="../fr/howto/htaccess.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
+<a href="../ko/howto/htaccess.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
+<a href="../pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a></p>
+</div>
+
+    <p>Los ficheros <code>.htaccess</code> facilitan una forma de realizar 
+    cambios en la configuraci&#243;n en contexto directorio.</p>
+</div>
+<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Ficheros .htaccess</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#what">Qu&#233; son/C&#243;mo usarlos</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#when">Cuando (no) usar ficheros .htaccess</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#how">How directives are applied</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#auth">Ejemplo de Autenticaci&#243;n</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#ssi">Ejemplo de Server Side Includes</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewrite">Reglas de Rewrite en ficheros .htaccess</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#cgi">Ejemplo de CGI</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">Resoluci&#243;n de problemas</a></li>
+</ul><h3>Consulte tambi&#233;n</h3><ul class="seealso"><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="section">
+<h2><a name="related" id="related">Ficheros .htaccess</a></h2>
+    <table class="related"><tr><th>M&#243;dulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li><li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li><li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="../mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#accessfilename">AccessFileName</a></code></li><li><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">A
 ddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code></li><li><code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code></li><li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li><li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li></ul></td></tr></table>
+
+    <div class="note">Deber&#237;a evitar usar ficheros <code>.htaccess</code> completamente si
+    tiene acceso al fichero de configuraci&#243;n principal de httpd. Usar ficheros 
+    <code>.htaccess</code> ralentiza su servidor Apache http. Cualquier 
+    directiva que pueda incluir en un fichero <code>.htaccess</code> 
+    estar&#225; mejor configurada dentro de una secci&#243;n 
+    <code class="directive"><a href="../mod/core.html#directory">Directory</a></code>, tendr&#225; el mismo efecto y
+    mejor rendimiento.</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="what" id="what">Qu&#233; son/C&#243;mo usarlos</a></h2>
+
+
+    <p>Los ficheros <code>.htaccess</code> (o "ficheros de configuraci&#243;n
+    distribuida") facilitan una forma de realizar cambios en la configuraci&#243;n
+    en contexto directorio. Un fichero, que contiene una o m&#225;s directivas, se 
+    coloca en un documento espec&#237;fico de un directorio, y estas directivas 
+    aplican a ese directorio y todos sus subdirectorios.</p>
+
+    <div class="note"><h3>Nota:</h3>
+      <p>Si quiere llamar a su fichero <code>.htaccess</code> de otra manera, 
+      puede cambiar el nombre del fichero usando la directiva <code class="directive"><a href="../mod/core.html#accessfilename">AccessFileName</a></code>. Por ejemplo, si usted prefiere
+      llamar al fichero <code>.config</code>, entonces puede poner lo siguiente
+      en el fichero de configuraci&#243;n de su servidor:</p>
+
+      <pre class="prettyprint lang-config">AccessFileName ".config"</pre>
+
+    </div>
+
+    <p>Generalmente, los ficheros <code>.htaccess</code> usan la misma sint&#225;xis 
+    que los <a href="../configuring.html#syntax">ficheros de la configuraci&#243;n
+    principal</a>. Lo que puede utilizar en estos ficheros lo determina la 
+    directiva <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>. Esta directiva
+    especifica, en categor&#237;as, qu&#233; directivas tendr&#225;n efecto si se encuentran en 
+    un fichero <code>.htaccess</code>. Si se permite una directiva en un fichero 
+    <code>.htaccess</code>, la documentaci&#243;n para esa directiva contendr&#225; una 
+    secci&#243;n Override, especificando qu&#233; valor debe ir en 
+    <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> para que se permita esa
+    directiva.</p>
+
+    <p>Por ejemplo, si busca en la documentaci&#243;n la directiva <code class="directive"><a href="../mod/core.html#adddefaultcharset">AddDefaultCharset</a></code>, encontrar&#225; que se permite en
+    ficheros <code>.htaccess</code>. (Vea la l&#237;nea de Contexto en el sumario de
+    la directiva.) La l&#237;nea <a href="../mod/directive-dict.html#Context">Override</a> muestra
+    <code>FileInfo</code>. De este modo, debe tener al menos
+    <code>AllowOverride FileInfo</code> para que esta directiva se aplique en
+    ficheros <code>.htaccess</code>.</p>
+
+    <div class="example"><h3>Ejemplo:</h3><table>
+        <tr>
+          <td><a href="../mod/directive-dict.html#Context">Context:</a></td>
+          <td>server config, virtual host, directory, .htaccess</td>
+        </tr>
+
+        <tr>
+          <td><a href="../mod/directive-dict.html#Override">Override:</a></td>
+          <td>FileInfo</td>
+        </tr>
+      </table></div>
+
+    <p>Si no est&#225; seguro de cu&#225;ndo, una directiva en concreto, se puede usar en un 
+    fichero <code>.htaccess</code>, consulte la documentaci&#243;n para esa directiva, 
+    y compruebe la l&#237;nea Context buscando ".htaccess".</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="when" id="when">Cuando (no) usar ficheros .htaccess</a></h2>
+
+    <p>Generalmente, solo deber&#237;a usar ficheros <code>.htaccess</code> cuando no
+    tiene acceso al fichero principal de configuraci&#243;n del servidor. Hay, por
+    ejemplo, una creencia err&#243;nea de que la autenticaci&#243;n de usuario deber&#237;a 
+    hacerse siempre dentro de ficheros <code>.htaccess</code>, y, m&#225;s recientemente, otra creencia err&#243;nea de que las directivas de 
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> deben ir en ficheros <code>.htaccess</code>. 
+    Esto sencillamente no es el caso. Puede poner las configuraciones de 
+    autenticaci&#243;n de usuario en la configuraci&#243;n principal del servidor, y esto 
+    es de hecho, el m&#233;todo preferido de configurar Apache. Del mismo modo, las 
+    directivas <code>mod_rewrite</code> funcionan mejor, en muchos sentidos, en 
+    el fichero de configuraci&#243;n principal del servidor.</p>
+
+    <p>Los ficheros <code>.htaccess</code> deber&#237;an usarse cuando su proveedor 
+    de contenidos le permite hacer modificaciones de configuraci&#243;n 
+    en contexto directorio, pero usted no tiene acceso de root en el servidor.
+    En el caso de que el administrador no est&#233; dispuesto a hacer cambios 
+    frecuentes en la configuraci&#243;n, puede que sea necesario permitir a usuarios
+    individuales realizar estos cambios de configuraci&#243;n en ficheros 
+    <code>.htaccess</code> por ellos mismos. Lo cual ocurre a menudo, por 
+    ejemplo, en casos donde los ISP est&#225;n albergando m&#250;ltiples sitios web de 
+    usuario en una sola m&#225;quina, y quieren que sus usuarios tengan la 
+    posibilidad de modificar sus configuraciones.</p>
+
+    <p>Aun as&#237;, generalmente, el uso de ficheros <code>.htaccess</code> deber&#237;a
+    evitarse cuando sea posible. Cualquier configuraci&#243;n que considerar&#237;a poner
+    en un fichero <code>.htaccess</code>, puede usarse con la misma efectividad
+    en una secci&#243;n <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> en el fichero de configuraci&#243;n 
+    del servidor.</p>
+
+    <p>Hay dos razones para evitar el uso de ficheros <code>.htaccess</code>.</p>
+
+    <p>La primera es el rendimiento. Cuando <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>
+    est&#225; configurado para permitir el uso de ficheros <code>.htaccess</code>, 
+    httpd buscar&#225; ficheros <code>.htaccess</code> en cada directorio. As&#237;,
+    permitiendo ficheros <code>.htaccess</code> provoca una p&#233;rdida de 
+    rendimiento, &#161;incluso aunque no los use! Adem&#225;s, los ficheros 
+    <code>.htaccess</code> se cargan cada vez que se solicita un documento.</p>
+
+    <p>Adem&#225;s tenga en cuenta que httpd debe buscar ficheros 
+    <code>.htaccess</code> en todos los directorios de mayor jerarqu&#237;a, 
+    para poder terner la lista completa de directivas que debe aplicar. (Vea
+    la secci&#243;n sobre <a href="#how">C&#243;mo se aplican las directivas</a>.) As&#237;, si
+    se solicita un fichero de un directorio <code>/www/htdocs/example</code>, 
+    httpd debe buscar los siguientes ficheros:</p>
+
+    <div class="example"><p><code>
+      /.htaccess<br />
+      /www/.htaccess<br />
+      /www/htdocs/.htaccess<br />
+      /www/htdocs/example/.htaccess
+    </code></p></div>
+
+    <p>De esta manera, por cada acceso a un fichero de ese directorio, hay 4 
+    accesos adicionales al sistema de ficheros, incluso si ninguno de esos 
+    ficheros est&#225; presente. (Tenga en cuenta que este caso solo se dar&#237;a si los 
+    ficheros <code>.htaccess</code> est&#225;n activados en <code>/</code>, que 
+    generalmente no es el caso.).</p>
+
+    <p>En el caso de las directivas <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, en el contexto de
+    <code>.htaccess</code> estas expresiones regulares deben recompilarse con 
+    cada solicitud a ese directorio, cuando en el contexto de configuraci&#243;n del
+    servidor solo se compilan una vez y se cachean. Adicionalmente, las reglas
+    en s&#237; mismas son m&#225;s complicadas, puesto que uno debe sortear las 
+    restricciones que vienen acompa&#241;adas del contexto directorio y 
+    <code>mod_rewrite</code>. Consulte la  <a href="../rewrite/intro.html#htaccess">Gu&#237;a de Rewrite</a> para un mayor 
+    detalle sobre este tema.</p>
+
+    <p>La segunda consideraci&#243;n es de seguridad. Estar&#225; permitiendo que usuarios
+    modifiquen la configuraci&#243;n del servidor, lo cual puede dar lugar a cambios sobre los que usted no tendr&#225; ning&#250;n control. Medite profundamente si debe 
+    dar a sus usuarios ese privilegio. Adem&#225;s tenga en cuenta que dar a los usuarios menos privilegios de los que necesitan dar&#225; lugar a m&#225;s peticiones 
+    de soporte. Aseg&#250;rese de que le indica a sus usuarios claramente el nivel de privilegios que les est&#225; dando. Especificando exactamente c&#243;mo ha 
+    configurado <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>, e inv&#237;teles 
+    a revisar la documentaci&#243;n relacionada, lo cual le ahorrar&#225; 
+    bastantes confusiones m&#225;s adelante.</p>
+
+    <p>Tenga en cuenta que esto es equivalente por completo a poner un fichero
+    <code>.htaccess</code> en un directorio <code>/www/htdocs/example</code> 
+    con una directiva, y poner la misma directiva en una secci&#243;n 
+    Directory <code>&lt;Directory "/www/htdocs/example"&gt;</code> en su 
+    configuraci&#243;n principal del servidor:</p>
+
+    <p>Fichero <code>.htaccess</code> en <code>/www/htdocs/example</code>:</p>
+
+    <div class="example"><h3>Contenido de fichero .htaccess en
+    <code>/www/htdocs/example</code></h3><pre class="prettyprint lang-config">AddType text/example ".exm"</pre>
+</div>
+
+    <div class="example"><h3>Secci&#243;n de su fichero <code>httpd.conf</code></h3><pre class="prettyprint lang-config">&lt;Directory "/www/htdocs/example"&gt;
+    AddType text/example ".exm"
+&lt;/Directory&gt;</pre>
+</div>
+
+    <p>Aun as&#237;, poniendo &#233;sta en el fichero de configuraci&#243;n dar&#225; como resultado
+    una menor p&#233;rdida de rendimiento, y como la configuraci&#243;n se carga una vez
+    cuando el httpd arranca, en lugar de cada vez que se solicita un fichero.</p>
+
+    <p>El uso de ficheros <code>.htaccess</code> puede desactivarse por completo
+    configurando la directiva <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>
+    a <code>none</code>:</p>
+
+    <pre class="prettyprint lang-config">AllowOverride None</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="how" id="how">How directives are applied</a></h2>
+
+    <p>Las directivas de configuraci&#243;n que se encuentran en el fichero
+    <code>.htaccess</code> se aplican al directorio en el que el fichero
+    <code>.htaccess</code> se encuentra, y a todos sus subdirectorios. Sin 
+    embargo, es importante recordar que puede haber otros ficheros 
+    <code>.htaccess</code> en directorios previos. Las directivas se aplican en
+    el orden en el que se encuentran. Por lo tanto, un fichero 
+    <code>.htaccess</code> puede sobrescribir directivas que se encuentran
+    en ficheros <code>.htaccess</code> que se encuentran en directorios previos 
+    del &#225;rbol de directorios. Y estos, en cambio, pueden haber sobrescrito 
+    directivas que se encontraban m&#225;s arriba, o en el fichero principal de 
+    configuraci&#243;n del servidor mismo.</p>
+
+    <p>Ejemplo:</p>
+
+    <p>En el directorio <code>/www/htdocs/example1</code> tenemos un fichero
+    <code>.htaccess</code> que contiene lo siguiente:</p>
+
+    <pre class="prettyprint lang-config">Options +ExecCGI</pre>
+
+
+    <p>(Nota: debe terner "<code>AllowOverride Options</code>" configurado para
+    permitir el uso de la directiva "<code class="directive"><a href="../mod/core.html#options">Options</a></code>" en ficheros 
+    <code>.htaccess</code> files.)</p>
+
+    <p>En el directorio <code>/www/htdocs/example1/example2</code> tenemos un
+    fichero <code>.htaccess</code> que contiene:</p>
+
+    <pre class="prettyprint lang-config">Options Includes</pre>
+
+
+    <p>Por este segundo fichero <code>.htaccess</code>, en el directorio
+    <code>/www/htdocs/example1/example2</code>, la ejecuci&#243;n de CGI execution no
+    est&#225; permitida, porque solo se ha definido <code>Options Includes</code>, 
+    que sobrescribe completamente una configuraci&#243;n previa que se pudiera haber
+    definido.</p>
+
+    <h3><a name="merge" id="merge">Incorporando el .htaccess en los ficheros de 
+    configuraci&#243;n principal</a></h3>
+
+    <p>Como se ha comentado en la documentaci&#243;n en las <a href="../sections.html">Secciones de Configuraci&#243;n</a>, los ficheros
+    <code>.htaccess</code> pueden sobrescribir las secciones <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> por el directorio
+    correspondiente, pero se sobrescribir&#225;n por otros tipos de secciones de 
+    configuraci&#243;n de los ficheros de configuraci&#243;n principal. Este hecho se
+    puede usar para forzar ciertas configuraciones, incluso en presencia
+    de una configuraci&#243;n laxa de 
+    <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>. Por ejemplo, para 
+    prevenir la ejecuci&#243;n de un script mientras se permite cualquier otra cosa 
+    en <code>.htaccess</code> puede usar:</p>
+
+    <pre class="prettyprint lang-config">&lt;Directory "/www/htdocs"&gt;
+    AllowOverride All
+&lt;/Directory&gt;
+
+&lt;Location "/"&gt;
+    Options +IncludesNoExec -ExecCGI
+&lt;/Location&gt;</pre>
+
+
+    <div class="note">Este ejemplo asume que su <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> es <code>/www/htdocs</code>.</div>
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="auth" id="auth">Ejemplo de Autenticaci&#243;n</a></h2>
+
+    <p>Si salt&#243; directamente a esta parte del documento para averiguar como 
+    hacer la autenticaci&#243;n, es important que tenga en cuenta una cosa. Hay una 
+    creencia err&#243;nea de que necesita usar ficheros <code>.htaccess</code> para
+    configurar autenticaci&#243;n con contrase&#241;a. Este no es el caso. Colocar las
+    directivas de autenticaci&#243;n en una secci&#243;n 
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, en su fichero
+    de configuraci&#243;n principal, es el m&#233;todo recomendado para configurar esto, 
+    y los ficheros <code>.htaccess</code> deber&#237;an usarse solamente si no tiene 
+    acceso al fichero de configuraci&#243;n principal del servidor. Vea <a href="#when">m&#225;s arriba</a> una explicaci&#243;n de cuando deber&#237;a y cuando no
+    deber&#237;a usar ficheros <code>.htaccess</code>.</p>
+
+    <p>Dicho esto, si todav&#237;a cree que debe usar el fichero
+    <code>.htaccess</code>, podr&#225; ver que una configuraci&#243;n como la que sigue 
+    podr&#237;a servirle.</p>
+
+    <p>Contenido del fichero <code>.htaccess</code>:</p>
+
+    <pre class="prettyprint lang-config">AuthType Basic
+AuthName "Password Required"
+AuthUserFile "/www/passwords/password.file"
+AuthGroupFile "/www/passwords/group.file"
+Require group admins</pre>
+
+
+    <p>Tenga en cuenta que <code>AllowOverride AuthConfig</code> debe estar
+    habilitado para que estas directivas tengan alg&#250;n efecto.</p>
+
+    <p>Por favor vea el <a href="auth.html">tutorial de autenticaci&#243;n</a> para
+    una explicaci&#243;n m&#225;s completa de la autenticaci&#243;n y la autorizaci&#243;n.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="ssi" id="ssi">Ejemplo de Server Side Includes</a></h2>
+
+    <p>Otro uso com&#250;n de ficheros <code>.htaccess</code> es activar Server Side 
+    Includes para un directorio en particular. Esto puede hacerse 
+    con las siguientes directivas de configuraci&#243;n, colocadas en un fichero
+    <code>.htaccess</code> y el directorio deseado:</p>
+
+    <pre class="prettyprint lang-config">Options +Includes
+AddType text/html "shtml"
+AddHandler server-parsed shtml</pre>
+
+
+    <p>Tenga en cuenta que <code>AllowOverride Options</code> y 
+    <code>AllowOverride FileInfo</code> deben estar activadas para que estas 
+    directivas tengan efecto.</p>
+
+    <p>Por favor vea el <a href="ssi.html">tutorial de SSI</a> para una
+    explicaci&#243;n m&#225;s completa de server-side includes.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="rewrite" id="rewrite">Reglas de Rewrite en ficheros .htaccess</a></h2>
+    <p>Cuando use <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> en
+    ficheros <code>.htaccess</code>, tenga en cuenta que el contexto 
+    directorio cambia las cosas un poco. En concreto, las reglas son 
+    relativas al directorio actual, en lugar de serlo de la petici&#243;n de URI 
+    solicitada originalmente.
+    Considere los siguientes ejemplos:</p>
+
+<pre class="prettyprint lang-config"># En httpd.conf
+RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
+
+# En .htaccess en el directorio ra&#237;z
+RewriteRule "^images/(.+)\.jpg" "images/$1.png"
+
+# En .htaccess en images/
+RewriteRule "^(.+)\.jpg" "$1.png"</pre>
+
+
+    <p>En un <code>.htaccess</code> en cualquier directorio del DocumentRoot, la 
+    barra ("/") inicial se elimina del valor facilitado a <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, y en el subdirectorio 
+    <code>images</code>, se elimina <code>/images/</code> tambi&#233;n de este valor. 
+    As&#237;, su expresi&#243;n regular necesita omitir tambi&#233;n esa parte.</p>
+
+    <p>Consulte la <a href="../rewrite/">documentaci&#243;n de mod_rewrite</a> para 
+    m&#225;s detalles al usar <code>mod_rewrite</code>.</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="cgi" id="cgi">Ejemplo de CGI</a></h2>
+
+    <p>Finalmente, puede que quiera usar un fichero <code>.htaccess</code> para
+    permitir la ejecuci&#243;n de programas CGI en un directorio en particular. Esto
+    se puede implementar con la siguiente configuraci&#243;n:</p>
+
+    <pre class="prettyprint lang-config">Options +ExecCGI
+AddHandler cgi-script "cgi" "pl"</pre>
+
+
+    <p>Alternativamente, si quiere considerar como programas CGI todos los 
+    ficheros de un directorio concreto, esto se puede conseguir con la siguiente 
+    configuraci&#243;n:</p>
+
+    <pre class="prettyprint lang-config">Options +ExecCGI
+SetHandler cgi-script</pre>
+
+
+    <p>Tenga en cuenta que <code>AllowOverride Options</code> y 
+    <code>AllowOverride FileInfo</code> deben estar ambas activadas para que 
+    estas directivas tengan efecto.</p>
+
+    <p>Por favor vea el <a href="cgi.html">tutorial CGI</a> para mayor detalle
+    sobre programaci&#243;n y configuraci&#243;n de CGI.</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="troubleshoot" id="troubleshoot">Resoluci&#243;n de problemas</a></h2>
+
+    <p>Cuando pone directivas en un fichero <code>.htaccess</code> y no obtiene 
+    el efecto deseado hay una serie de cosas que pueden haber ido mal.</p>
+
+    <p>El problema m&#225;s com&#250;n es que <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride
+    </a></code> no est&#225; configurada para que sus directivas puedan surtir
+    efecto. Aseg&#250;rese de que no tiene <code>AllowOverride None</code> 
+    configurado para el directorio en cuesti&#243;n. Una buena forma de probar esto
+    es poner "basura" en su fichero <code>.htaccess</code> y recargar la p&#225;gina. 
+    Si no se genera un error en el servidor, casi seguro que tiene configurado 
+    <code>AllowOverride None</code>.</p>
+
+    <p>Si, por otro lado, obtiene errores de servidor al intentar acceder a 
+    documentos, compruebe el log de errores de httpd. Seguramente le indiquen 
+    que la directiva en uso en su fichero <code>.htaccess</code> no est&#225; 
+    permitida.</p>
+
+    <div class="example"><p><code>
+    [Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here
+    </code></p></div>
+
+    <p>Esto indicar&#225; que o bien ha usado una directiva que no se permite nunca 
+    en ficheros <code>.htaccess</code>, o que simplementa no tiene
+    <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> configurado
+    a un nivel suficiente para la directiva que ha usado. Consulte la
+    documentaci&#243;n para esa directiva en particular para determinar cual es el 
+    caso.</p>
+
+    <p>Alternativamente, puede que le indique que hay un error de sintaxis en 
+    el uso de la propia directiva.</p>
+
+    <div class="example"><p><code>
+    [Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters
+    </code></p></div>
+
+    <p>En este caso, el mensaje de error deber&#237;a ser espec&#237;fico para el error de
+    sintaxis concreto que ha cometido.</p>
+
+</div></div>
+<div class="bottomlang">
+<p><span>Idiomas disponibles: </span><a href="../en/howto/htaccess.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/howto/htaccess.html" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
+<a href="../fr/howto/htaccess.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
+<a href="../ko/howto/htaccess.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
+<a href="../pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a></p>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comentarios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/htaccess.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&#233;rminos de <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="../mod/">M&#243;dulos</a> | <a href="../mod/directives.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

Added: httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.es
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.es?rev=1789828&view=auto
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.es (added)
+++ httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.es [utf-8] Sat Apr  1 17:29:47 2017
@@ -0,0 +1,475 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
+<!-- English Revision: 1741841 -->
+<!-- Spanish translation : Daniel Ferradal -->
+<!-- Reviewed by Luis Joaquin Gil de Bernabé Pfeiffer -->
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manualpage metafile="htaccess.xml.meta">
+<parentdocument href="./">How-To / Tutoriales</parentdocument>
+
+<title>Tutorial del Servidor Apache HTTP: Ficheros .htaccess</title>
+
+<summary>
+    <p>Los ficheros <code>.htaccess</code> facilitan una forma de realizar 
+    cambios en la configuración en contexto directorio.</p>
+</summary>
+
+<section id="related"><title>Ficheros .htaccess</title>
+    <related>
+        <modulelist>
+            <module>core</module>
+            <module>mod_authn_file</module>
+            <module>mod_authz_groupfile</module>
+            <module>mod_cgi</module>
+            <module>mod_include</module>
+            <module>mod_mime</module>
+        </modulelist>
+
+        <directivelist>
+            <directive module="core">AccessFileName</directive>
+            <directive module="core">AllowOverride</directive>
+            <directive module="core">Options</directive>
+            <directive module="mod_mime">AddHandler</directive>
+            <directive module="core">SetHandler</directive>
+            <directive module="mod_authn_core">AuthType</directive>
+            <directive module="mod_authn_core">AuthName</directive>
+            <directive module="mod_authn_file">AuthUserFile</directive>
+            <directive module="mod_authz_groupfile">AuthGroupFile</directive>
+            <directive module="mod_authz_core">Require</directive>
+        </directivelist>
+
+    </related>
+
+    <note>Debería evitar usar ficheros <code>.htaccess</code> completamente si
+    tiene acceso al fichero de configuración principal de httpd. Usar ficheros 
+    <code>.htaccess</code> ralentiza su servidor Apache http. Cualquier 
+    directiva que pueda incluir en un fichero <code>.htaccess</code> 
+    estará mejor configurada dentro de una sección 
+    <directive module="core">Directory</directive>, tendrá el mismo efecto y
+    mejor rendimiento.</note>
+</section>
+
+<section id="what">
+<title>Qué son/Cómo usarlos</title>
+
+    <p>Los ficheros <code>.htaccess</code> (o "ficheros de configuración
+    distribuida") facilitan una forma de realizar cambios en la configuración
+    en contexto directorio. Un fichero, que contiene una o más directivas, se 
+    coloca en un documento específico de un directorio, y estas directivas 
+    aplican a ese directorio y todos sus subdirectorios.</p>
+
+    <note><title>Nota:</title>
+      <p>Si quiere llamar a su fichero <code>.htaccess</code> de otra manera, 
+      puede cambiar el nombre del fichero usando la directiva <directive
+      module="core">AccessFileName</directive>. Por ejemplo, si usted prefiere
+      llamar al fichero <code>.config</code>, entonces puede poner lo siguiente
+      en el fichero de configuración de su servidor:</p>
+
+      <highlight language="config">
+AccessFileName ".config"
+      </highlight>
+    </note>
+
+    <p>Generalmente, los ficheros <code>.htaccess</code> usan la misma sintáxis 
+    que los <a href="../configuring.html#syntax">ficheros de la configuración
+    principal</a>. Lo que puede utilizar en estos ficheros lo determina la 
+    directiva <directive module="core">AllowOverride</directive>. Esta directiva
+    especifica, en categorías, qué directivas tendrán efecto si se encuentran en 
+    un fichero <code>.htaccess</code>. Si se permite una directiva en un fichero 
+    <code>.htaccess</code>, la documentación para esa directiva contendrá una 
+    sección Override, especificando qué valor debe ir en 
+    <directive module="core">AllowOverride</directive> para que se permita esa
+    directiva.</p>
+
+    <p>Por ejemplo, si busca en la documentación la directiva <directive
+    module="core">AddDefaultCharset</directive>, encontrará que se permite en
+    ficheros <code>.htaccess</code>. (Vea la línea de Contexto en el sumario de
+    la directiva.) La línea <a
+    href="../mod/directive-dict.html#Context">Override</a> muestra
+    <code>FileInfo</code>. De este modo, debe tener al menos
+    <code>AllowOverride FileInfo</code> para que esta directiva se aplique en
+    ficheros <code>.htaccess</code>.</p>
+
+    <example><title>Ejemplo:</title>
+      <table>
+        <tr>
+          <td><a
+          href="../mod/directive-dict.html#Context">Context:</a></td>
+          <td>server config, virtual host, directory, .htaccess</td>
+        </tr>
+
+        <tr>
+          <td><a
+          href="../mod/directive-dict.html#Override">Override:</a></td>
+          <td>FileInfo</td>
+        </tr>
+      </table>
+    </example>
+
+    <p>Si no está seguro de cuándo, una directiva en concreto, se puede usar en un 
+    fichero <code>.htaccess</code>, consulte la documentación para esa directiva, 
+    y compruebe la línea Context buscando ".htaccess".</p>
+    </section>
+
+    <section id="when"><title>Cuando (no) usar ficheros .htaccess</title>
+
+    <p>Generalmente, solo debería usar ficheros <code>.htaccess</code> cuando no
+    tiene acceso al fichero principal de configuración del servidor. Hay, por
+    ejemplo, una creencia errónea de que la autenticación de usuario debería 
+    hacerse siempre dentro de ficheros <code>.htaccess</code>, y, más recientemente, otra creencia errónea de que las directivas de 
+    <module>mod_rewrite</module> deben ir en ficheros <code>.htaccess</code>. 
+    Esto sencillamente no es el caso. Puede poner las configuraciones de 
+    autenticación de usuario en la configuración principal del servidor, y esto 
+    es de hecho, el método preferido de configurar Apache. Del mismo modo, las 
+    directivas <code>mod_rewrite</code> funcionan mejor, en muchos sentidos, en 
+    el fichero de configuración principal del servidor.</p>
+
+    <p>Los ficheros <code>.htaccess</code> deberían usarse cuando su proveedor 
+    de contenidos le permite hacer modificaciones de configuración 
+    en contexto directorio, pero usted no tiene acceso de root en el servidor.
+    En el caso de que el administrador no esté dispuesto a hacer cambios 
+    frecuentes en la configuración, puede que sea necesario permitir a usuarios
+    individuales realizar estos cambios de configuración en ficheros 
+    <code>.htaccess</code> por ellos mismos. Lo cual ocurre a menudo, por 
+    ejemplo, en casos donde los ISP están albergando múltiples sitios web de 
+    usuario en una sola máquina, y quieren que sus usuarios tengan la 
+    posibilidad de modificar sus configuraciones.</p>
+
+    <p>Aun así, generalmente, el uso de ficheros <code>.htaccess</code> debería
+    evitarse cuando sea posible. Cualquier configuración que consideraría poner
+    en un fichero <code>.htaccess</code>, puede usarse con la misma efectividad
+    en una sección <directive module="core"
+    type="section">Directory</directive> en el fichero de configuración 
+    del servidor.</p>
+
+    <p>Hay dos razones para evitar el uso de ficheros <code>.htaccess</code>.</p>
+
+    <p>La primera es el rendimiento. Cuando <directive
+    module="core">AllowOverride</directive>
+    está configurado para permitir el uso de ficheros <code>.htaccess</code>, 
+    httpd buscará ficheros <code>.htaccess</code> en cada directorio. Así,
+    permitiendo ficheros <code>.htaccess</code> provoca una pérdida de 
+    rendimiento, ¡incluso aunque no los use! Además, los ficheros 
+    <code>.htaccess</code> se cargan cada vez que se solicita un documento.</p>
+
+    <p>Además tenga en cuenta que httpd debe buscar ficheros 
+    <code>.htaccess</code> en todos los directorios de mayor jerarquía, 
+    para poder terner la lista completa de directivas que debe aplicar. (Vea
+    la sección sobre <a href="#how">Cómo se aplican las directivas</a>.) Así, si
+    se solicita un fichero de un directorio <code>/www/htdocs/example</code>, 
+    httpd debe buscar los siguientes ficheros:</p>
+
+    <example>
+      /.htaccess<br />
+      /www/.htaccess<br />
+      /www/htdocs/.htaccess<br />
+      /www/htdocs/example/.htaccess
+    </example>
+
+    <p>De esta manera, por cada acceso a un fichero de ese directorio, hay 4 
+    accesos adicionales al sistema de ficheros, incluso si ninguno de esos 
+    ficheros está presente. (Tenga en cuenta que este caso solo se daría si los 
+    ficheros <code>.htaccess</code> están activados en <code>/</code>, que 
+    generalmente no es el caso.).</p>
+
+    <p>En el caso de las directivas <directive
+    module="mod_rewrite">RewriteRule</directive>, en el contexto de
+    <code>.htaccess</code> estas expresiones regulares deben recompilarse con 
+    cada solicitud a ese directorio, cuando en el contexto de configuración del
+    servidor solo se compilan una vez y se cachean. Adicionalmente, las reglas
+    en sí mismas son más complicadas, puesto que uno debe sortear las 
+    restricciones que vienen acompañadas del contexto directorio y 
+    <code>mod_rewrite</code>. Consulte la  <a
+    href="../rewrite/intro.html#htaccess">Guía de Rewrite</a> para un mayor 
+    detalle sobre este tema.</p>
+
+    <p>La segunda consideración es de seguridad. Estará permitiendo que usuarios
+    modifiquen la configuración del servidor, lo cual puede dar lugar a cambios sobre los que usted no tendrá ningún control. Medite profundamente si debe 
+    dar a sus usuarios ese privilegio. Además tenga en cuenta que dar a los usuarios menos privilegios de los que necesitan dará lugar a más peticiones 
+    de soporte. Asegúrese de que le indica a sus usuarios claramente el nivel de privilegios que les está dando. Especificando exactamente cómo ha 
+    configurado <directive module="core">AllowOverride</directive>, e invíteles 
+    a revisar la documentación relacionada, lo cual le ahorrará 
+    bastantes confusiones más adelante.</p>
+
+    <p>Tenga en cuenta que esto es equivalente por completo a poner un fichero
+    <code>.htaccess</code> en un directorio <code>/www/htdocs/example</code> 
+    con una directiva, y poner la misma directiva en una sección 
+    Directory <code>&lt;Directory "/www/htdocs/example"&gt;</code> en su 
+    configuración principal del servidor:</p>
+
+    <p>Fichero <code>.htaccess</code> en <code>/www/htdocs/example</code>:</p>
+
+    <example><title>Contenido de fichero .htaccess en
+    <code>/www/htdocs/example</code></title>
+    <highlight language="config">
+AddType text/example ".exm"
+    </highlight>
+    </example>
+
+    <example><title>Sección de su fichero <code>httpd.conf</code></title>
+    <highlight language="config">
+&lt;Directory "/www/htdocs/example"&gt;
+    AddType text/example ".exm"
+&lt;/Directory&gt;
+    </highlight>
+    </example>
+
+    <p>Aun así, poniendo ésta en el fichero de configuración dará como resultado
+    una menor pérdida de rendimiento, y como la configuración se carga una vez
+    cuando el httpd arranca, en lugar de cada vez que se solicita un fichero.</p>
+
+    <p>El uso de ficheros <code>.htaccess</code> puede desactivarse por completo
+    configurando la directiva <directive module="core">AllowOverride</directive>
+    a <code>none</code>:</p>
+
+    <highlight language="config">
+AllowOverride None
+    </highlight>
+</section>
+
+<section id="how"><title>How directives are applied</title>
+
+    <p>Las directivas de configuración que se encuentran en el fichero
+    <code>.htaccess</code> se aplican al directorio en el que el fichero
+    <code>.htaccess</code> se encuentra, y a todos sus subdirectorios. Sin 
+    embargo, es importante recordar que puede haber otros ficheros 
+    <code>.htaccess</code> en directorios previos. Las directivas se aplican en
+    el orden en el que se encuentran. Por lo tanto, un fichero 
+    <code>.htaccess</code> puede sobrescribir directivas que se encuentran
+    en ficheros <code>.htaccess</code> que se encuentran en directorios previos 
+    del árbol de directorios. Y estos, en cambio, pueden haber sobrescrito 
+    directivas que se encontraban más arriba, o en el fichero principal de 
+    configuración del servidor mismo.</p>
+
+    <p>Ejemplo:</p>
+
+    <p>En el directorio <code>/www/htdocs/example1</code> tenemos un fichero
+    <code>.htaccess</code> que contiene lo siguiente:</p>
+
+    <highlight language="config">
+Options +ExecCGI
+    </highlight>
+
+    <p>(Nota: debe terner "<code>AllowOverride Options</code>" configurado para
+    permitir el uso de la directiva "<directive
+    module="core">Options</directive>" en ficheros 
+    <code>.htaccess</code> files.)</p>
+
+    <p>En el directorio <code>/www/htdocs/example1/example2</code> tenemos un
+    fichero <code>.htaccess</code> que contiene:</p>
+
+    <highlight language="config">
+Options Includes
+    </highlight>
+
+    <p>Por este segundo fichero <code>.htaccess</code>, en el directorio
+    <code>/www/htdocs/example1/example2</code>, la ejecución de CGI execution no
+    está permitida, porque solo se ha definido <code>Options Includes</code>, 
+    que sobrescribe completamente una configuración previa que se pudiera haber
+    definido.</p>
+
+    <section id="merge"><title>Incorporando el .htaccess en los ficheros de 
+    configuración principal</title>
+
+    <p>Como se ha comentado en la documentación en las <a
+    href="../sections.html">Secciones de Configuración</a>, los ficheros
+    <code>.htaccess</code> pueden sobrescribir las secciones <directive
+    type="section" module="core">Directory</directive> por el directorio
+    correspondiente, pero se sobrescribirán por otros tipos de secciones de 
+    configuración de los ficheros de configuración principal. Este hecho se
+    puede usar para forzar ciertas configuraciones, incluso en presencia
+    de una configuración laxa de 
+    <directive module="core">AllowOverride</directive>. Por ejemplo, para 
+    prevenir la ejecución de un script mientras se permite cualquier otra cosa 
+    en <code>.htaccess</code> puede usar:</p>
+
+    <highlight language="config">
+&lt;Directory "/www/htdocs"&gt;
+    AllowOverride All
+&lt;/Directory&gt;
+
+&lt;Location "/"&gt;
+    Options +IncludesNoExec -ExecCGI
+&lt;/Location&gt;
+    </highlight>
+
+    <note>Este ejemplo asume que su <directive
+    module="core">DocumentRoot</directive> es <code>/www/htdocs</code>.</note>
+</section>
+
+</section>
+
+<section id="auth"><title>Ejemplo de Autenticación</title>
+
+    <p>Si saltó directamente a esta parte del documento para averiguar como 
+    hacer la autenticación, es important que tenga en cuenta una cosa. Hay una 
+    creencia errónea de que necesita usar ficheros <code>.htaccess</code> para
+    configurar autenticación con contraseña. Este no es el caso. Colocar las
+    directivas de autenticación en una sección 
+    <directive module="core" type="section">Directory</directive>, en su fichero
+    de configuración principal, es el método recomendado para configurar esto, 
+    y los ficheros <code>.htaccess</code> deberían usarse solamente si no tiene 
+    acceso al fichero de configuración principal del servidor. Vea <a
+    href="#when">más arriba</a> una explicación de cuando debería y cuando no
+    debería usar ficheros <code>.htaccess</code>.</p>
+
+    <p>Dicho esto, si todavía cree que debe usar el fichero
+    <code>.htaccess</code>, podrá ver que una configuración como la que sigue 
+    podría servirle.</p>
+
+    <p>Contenido del fichero <code>.htaccess</code>:</p>
+
+    <highlight language="config">
+AuthType Basic
+AuthName "Password Required"
+AuthUserFile "/www/passwords/password.file"
+AuthGroupFile "/www/passwords/group.file"
+Require group admins
+    </highlight>
+
+    <p>Tenga en cuenta que <code>AllowOverride AuthConfig</code> debe estar
+    habilitado para que estas directivas tengan algún efecto.</p>
+
+    <p>Por favor vea el <a href="auth.html">tutorial de autenticación</a> para
+    una explicación más completa de la autenticación y la autorización.</p>
+</section>
+
+<section id="ssi"><title>Ejemplo de Server Side Includes</title>
+
+    <p>Otro uso común de ficheros <code>.htaccess</code> es activar Server Side 
+    Includes para un directorio en particular. Esto puede hacerse 
+    con las siguientes directivas de configuración, colocadas en un fichero
+    <code>.htaccess</code> y el directorio deseado:</p>
+
+    <highlight language="config">
+Options +Includes
+AddType text/html "shtml"
+AddHandler server-parsed shtml
+    </highlight>
+
+    <p>Tenga en cuenta que <code>AllowOverride Options</code> y 
+    <code>AllowOverride FileInfo</code> deben estar activadas para que estas 
+    directivas tengan efecto.</p>
+
+    <p>Por favor vea el <a href="ssi.html">tutorial de SSI</a> para una
+    explicación más completa de server-side includes.</p>
+</section>
+
+<section id="rewrite"><title>Reglas de Rewrite en ficheros .htaccess</title>
+    <p>Cuando use <directive module="mod_rewrite">RewriteRule</directive> en
+    ficheros <code>.htaccess</code>, tenga en cuenta que el contexto 
+    directorio cambia las cosas un poco. En concreto, las reglas son 
+    relativas al directorio actual, en lugar de serlo de la petición de URI 
+    solicitada originalmente.
+    Considere los siguientes ejemplos:</p>
+
+<highlight language="config">
+# En httpd.conf
+RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
+
+# En .htaccess en el directorio raíz
+RewriteRule "^images/(.+)\.jpg" "images/$1.png"
+
+# En .htaccess en images/
+RewriteRule "^(.+)\.jpg" "$1.png"
+</highlight>
+
+    <p>En un <code>.htaccess</code> en cualquier directorio del DocumentRoot, la 
+    barra ("/") inicial se elimina del valor facilitado a <directive
+    module="mod_rewrite">RewriteRule</directive>, y en el subdirectorio 
+    <code>images</code>, se elimina <code>/images/</code> también de este valor. 
+    Así, su expresión regular necesita omitir también esa parte.</p>
+
+    <p>Consulte la <a href="../rewrite/">documentación de mod_rewrite</a> para 
+    más detalles al usar <code>mod_rewrite</code>.</p>
+
+</section>
+
+<section id="cgi"><title>Ejemplo de CGI</title>
+
+    <p>Finalmente, puede que quiera usar un fichero <code>.htaccess</code> para
+    permitir la ejecución de programas CGI en un directorio en particular. Esto
+    se puede implementar con la siguiente configuración:</p>
+
+    <highlight language="config">
+Options +ExecCGI
+AddHandler cgi-script "cgi" "pl"
+    </highlight>
+
+    <p>Alternativamente, si quiere considerar como programas CGI todos los 
+    ficheros de un directorio concreto, esto se puede conseguir con la siguiente 
+    configuración:</p>
+
+    <highlight language="config">
+Options +ExecCGI
+SetHandler cgi-script
+    </highlight>
+
+    <p>Tenga en cuenta que <code>AllowOverride Options</code> y 
+    <code>AllowOverride FileInfo</code> deben estar ambas activadas para que 
+    estas directivas tengan efecto.</p>
+
+    <p>Por favor vea el <a href="cgi.html">tutorial CGI</a> para mayor detalle
+    sobre programación y configuración de CGI.</p>
+
+</section>
+
+<section id="troubleshoot"><title>Resolución de problemas</title>
+
+    <p>Cuando pone directivas en un fichero <code>.htaccess</code> y no obtiene 
+    el efecto deseado hay una serie de cosas que pueden haber ido mal.</p>
+
+    <p>El problema más común es que <directive module="core">AllowOverride
+    </directive> no está configurada para que sus directivas puedan surtir
+    efecto. Asegúrese de que no tiene <code>AllowOverride None</code> 
+    configurado para el directorio en cuestión. Una buena forma de probar esto
+    es poner "basura" en su fichero <code>.htaccess</code> y recargar la página. 
+    Si no se genera un error en el servidor, casi seguro que tiene configurado 
+    <code>AllowOverride None</code>.</p>
+
+    <p>Si, por otro lado, obtiene errores de servidor al intentar acceder a 
+    documentos, compruebe el log de errores de httpd. Seguramente le indiquen 
+    que la directiva en uso en su fichero <code>.htaccess</code> no está 
+    permitida.</p>
+
+    <example>
+    [Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here
+    </example>
+
+    <p>Esto indicará que o bien ha usado una directiva que no se permite nunca 
+    en ficheros <code>.htaccess</code>, o que simplementa no tiene
+    <directive module="core">AllowOverride</directive> configurado
+    a un nivel suficiente para la directiva que ha usado. Consulte la
+    documentación para esa directiva en particular para determinar cual es el 
+    caso.</p>
+
+    <p>Alternativamente, puede que le indique que hay un error de sintaxis en 
+    el uso de la propia directiva.</p>
+
+    <example>
+    [Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters
+    </example>
+
+    <p>En este caso, el mensaje de error debería ser específico para el error de
+    sintaxis concreto que ha cometido.</p>
+
+</section>
+
+</manualpage>

Modified: httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.meta?rev=1789828&r1=1789827&r2=1789828&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.meta (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/howto/htaccess.xml.meta Sat Apr  1 17:29:47 2017
@@ -8,6 +8,7 @@
 
   <variants>
     <variant>en</variant>
+    <variant>es</variant>
     <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>



Mime
View raw message