diff --git a/docs/manual/bind.html.de b/docs/manual/bind.html.de index 80d434a0ae..bf426c37ee 100644 --- a/docs/manual/bind.html.de +++ b/docs/manual/bind.html.de @@ -222,7 +222,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/bind.html'; } })(window, document); //--> - - - -
<-
-
-Apache > Servidor HTTP > Documentacin > Versin 2.5 > How-To / Tutoriales

Tutorial del Servidor Apache HTTP: Ficheros .htaccess

-
-

Idiomas disponibles:  en  | - es  | - fr  | - ja  | - ko  | - pt-br 

-
- -

Los ficheros .htaccess facilitan una forma de realizar - cambios en la configuracin en contexto directorio.

-
-

Consulte tambin

-
top
-
-

Ficheros .htaccess

- - -
Debera evitar usar ficheros .htaccess completamente si - tiene acceso al fichero de configuracin principal de httpd. Usar ficheros - .htaccess ralentiza su servidor Apache http. Cualquier - directiva que pueda incluir en un fichero .htaccess - estar mejor configurada dentro de una seccin - Directory, tendr el mismo efecto y - mejor rendimiento.
-
top
-
-

Qu son/Cmo usarlos

- - -

Los ficheros .htaccess (o "ficheros de configuracin - distribuida") facilitan una forma de realizar cambios en la configuracin - en contexto directorio. Un fichero, que contiene una o ms directivas, se - coloca en un documento especfico de un directorio, y estas directivas - aplican a ese directorio y todos sus subdirectorios.

- -

Nota:

-

Si quiere llamar a su fichero .htaccess de otra manera, - puede cambiar el nombre del fichero usando la directiva AccessFileName. Por ejemplo, si usted prefiere - llamar al fichero .config, entonces puede poner lo siguiente - en el fichero de configuracin de su servidor:

- -
AccessFileName ".config"
- -
- -

Generalmente, los ficheros .htaccess usan la misma sintxis - que los ficheros de la configuracin - principal. Lo que puede utilizar en estos ficheros lo determina la - directiva AllowOverride. Esta directiva - especifica, en categoras, qu directivas tendrn efecto si se encuentran en - un fichero .htaccess. Si se permite una directiva en un fichero - .htaccess, la documentacin para esa directiva contendr una - seccin Override, especificando qu valor debe ir en - AllowOverride para que se permita esa - directiva.

- -

Por ejemplo, si busca en la documentacin la directiva AddDefaultCharset, encontrar que se permite en - ficheros .htaccess. (Vea la lnea de Contexto en el sumario de - la directiva.) La lnea Override muestra - FileInfo. De este modo, debe tener al menos - AllowOverride FileInfo para que esta directiva se aplique en - ficheros .htaccess.

- -

Ejemplo:

- - - - - - - - - -
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
- -

Si no est seguro de cundo, una directiva en concreto, se puede usar en un - fichero .htaccess, consulte la documentacin para esa directiva, - y compruebe la lnea Context buscando ".htaccess".

-
top
-
-

Cuando (no) usar ficheros .htaccess

- -

Generalmente, solo debera usar ficheros .htaccess cuando no - tiene acceso al fichero principal de configuracin del servidor. Hay, por - ejemplo, una creencia errnea de que la autenticacin de usuario debera - hacerse siempre dentro de ficheros .htaccess, y, ms recientemente, otra creencia errnea de que las directivas de - mod_rewrite deben ir en ficheros .htaccess. - Esto sencillamente no es el caso. Puede poner las configuraciones de - autenticacin de usuario en la configuracin principal del servidor, y esto - es de hecho, el mtodo preferido de configurar Apache. Del mismo modo, las - directivas mod_rewrite funcionan mejor, en muchos sentidos, en - el fichero de configuracin principal del servidor.

- -

Los ficheros .htaccess deberan usarse cuando su proveedor - de contenidos le permite hacer modificaciones de configuracin - 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 configuracin, puede que sea necesario permitir a usuarios - individuales realizar estos cambios de configuracin en ficheros - .htaccess por ellos mismos. Lo cual ocurre a menudo, por - ejemplo, en casos donde los ISP estn albergando mltiples sitios web de - usuario en una sola mquina, y quieren que sus usuarios tengan la - posibilidad de modificar sus configuraciones.

- -

Aun as, generalmente, el uso de ficheros .htaccess debera - evitarse cuando sea posible. Cualquier configuracin que considerara poner - en un fichero .htaccess, puede usarse con la misma efectividad - en una seccin <Directory> en el fichero de configuracin - del servidor.

- -

Hay dos razones para evitar el uso de ficheros .htaccess.

- -

La primera es el rendimiento. Cuando AllowOverride - est configurado para permitir el uso de ficheros .htaccess, - httpd buscar ficheros .htaccess en cada directorio. As, - permitiendo ficheros .htaccess provoca una prdida de - rendimiento, incluso aunque no los use! Adems, los ficheros - .htaccess se cargan cada vez que se solicita un documento.

- -

Adems tenga en cuenta que httpd debe buscar ficheros - .htaccess en todos los directorios de mayor jerarqua, - para poder terner la lista completa de directivas que debe aplicar. (Vea - la seccin sobre Cmo se aplican las directivas.) As, si - se solicita un fichero de un directorio /www/htdocs/example, - httpd debe buscar los siguientes ficheros:

- -

- /.htaccess
- /www/.htaccess
- /www/htdocs/.htaccess
- /www/htdocs/example/.htaccess -

- -

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 dara si los - ficheros .htaccess estn activados en /, que - generalmente no es el caso.).

- -

En el caso de las directivas RewriteRule, en el contexto de - .htaccess estas expresiones regulares deben recompilarse con - cada solicitud a ese directorio, cuando en el contexto de configuracin del - servidor solo se compilan una vez y se cachean. Adicionalmente, las reglas - en s mismas son ms complicadas, puesto que uno debe sortear las - restricciones que vienen acompaadas del contexto directorio y - mod_rewrite. Consulte la Gua de Rewrite para un mayor - detalle sobre este tema.

- -

La segunda consideracin es de seguridad. Estar permitiendo que usuarios - modifiquen la configuracin del servidor, lo cual puede dar lugar a cambios sobre los que usted no tendr ningn control. Medite profundamente si debe - dar a sus usuarios ese privilegio. Adems tenga en cuenta que dar a los usuarios menos privilegios de los que necesitan dar lugar a ms peticiones - de soporte. Asegrese de que le indica a sus usuarios claramente el nivel de privilegios que les est dando. Especificando exactamente cmo ha - configurado AllowOverride, e invteles - a revisar la documentacin relacionada, lo cual le ahorrar - bastantes confusiones ms adelante.

- -

Tenga en cuenta que esto es equivalente por completo a poner un fichero - .htaccess en un directorio /www/htdocs/example - con una directiva, y poner la misma directiva en una seccin - Directory <Directory "/www/htdocs/example"> en su - configuracin principal del servidor:

- -

Fichero .htaccess en /www/htdocs/example:

- -

Contenido de fichero .htaccess en - /www/htdocs/example

AddType text/example ".exm"
-
- -

Seccin de su fichero httpd.conf

<Directory "/www/htdocs/example">
-    AddType text/example ".exm"
-</Directory>
-
- -

Aun as, poniendo sta en el fichero de configuracin dar como resultado - una menor prdida de rendimiento, y como la configuracin se carga una vez - cuando el httpd arranca, en lugar de cada vez que se solicita un fichero.

- -

El uso de ficheros .htaccess puede desactivarse por completo - configurando la directiva AllowOverride - a none:

- -
AllowOverride None
- -
top
-
-

How directives are applied

- -

Las directivas de configuracin que se encuentran en el fichero - .htaccess se aplican al directorio en el que el fichero - .htaccess se encuentra, y a todos sus subdirectorios. Sin - embargo, es importante recordar que puede haber otros ficheros - .htaccess en directorios previos. Las directivas se aplican en - el orden en el que se encuentran. Por lo tanto, un fichero - .htaccess puede sobrescribir directivas que se encuentran - en ficheros .htaccess que se encuentran en directorios previos - del rbol de directorios. Y estos, en cambio, pueden haber sobrescrito - directivas que se encontraban ms arriba, o en el fichero principal de - configuracin del servidor mismo.

- -

Ejemplo:

- -

En el directorio /www/htdocs/example1 tenemos un fichero - .htaccess que contiene lo siguiente:

- -
Options +ExecCGI
- - -

(Nota: debe terner "AllowOverride Options" configurado para - permitir el uso de la directiva "Options" en ficheros - .htaccess files.)

- -

En el directorio /www/htdocs/example1/example2 tenemos un - fichero .htaccess que contiene:

- -
Options Includes
- - -

Por este segundo fichero .htaccess, en el directorio - /www/htdocs/example1/example2, la ejecucin de CGI execution no - est permitida, porque solo se ha definido Options Includes, - que sobrescribe completamente una configuracin previa que se pudiera haber - definido.

- -

Incorporando el .htaccess en los ficheros de - configuracin principal

- -

Como se ha comentado en la documentacin en las Secciones de Configuracin, los ficheros - .htaccess pueden sobrescribir las secciones <Directory> por el directorio - correspondiente, pero se sobrescribirn por otros tipos de secciones de - configuracin de los ficheros de configuracin principal. Este hecho se - puede usar para forzar ciertas configuraciones, incluso en presencia - de una configuracin laxa de - AllowOverride. Por ejemplo, para - prevenir la ejecucin de un script mientras se permite cualquier otra cosa - en .htaccess puede usar:

- -
<Directory "/www/htdocs">
-    AllowOverride All
-</Directory>
-
-<Location "/">
-    Options +IncludesNoExec -ExecCGI
-</Location>
- - -
Este ejemplo asume que su DocumentRoot es /www/htdocs.
- - -
top
-
-

Ejemplo de Autenticacin

- -

Si salt directamente a esta parte del documento para averiguar como - hacer la autenticacin, es important que tenga en cuenta una cosa. Hay una - creencia errnea de que necesita usar ficheros .htaccess para - configurar autenticacin con contrasea. Este no es el caso. Colocar las - directivas de autenticacin en una seccin - <Directory>, en su fichero - de configuracin principal, es el mtodo recomendado para configurar esto, - y los ficheros .htaccess deberan usarse solamente si no tiene - acceso al fichero de configuracin principal del servidor. Vea ms arriba una explicacin de cuando debera y cuando no - debera usar ficheros .htaccess.

- -

Dicho esto, si todava cree que debe usar el fichero - .htaccess, podr ver que una configuracin como la que sigue - podra servirle.

- -

Contenido del fichero .htaccess:

- -
AuthType Basic
-AuthName "Password Required"
-AuthUserFile "/www/passwords/password.file"
-AuthGroupFile "/www/passwords/group.file"
-Require group admins
- - -

Tenga en cuenta que AllowOverride AuthConfig debe estar - habilitado para que estas directivas tengan algn efecto.

- -

Por favor vea el tutorial de autenticacin para - una explicacin ms completa de la autenticacin y la autorizacin.

-
top
-
-

Ejemplo de Server Side Includes

- -

Otro uso comn de ficheros .htaccess es activar Server Side - Includes para un directorio en particular. Esto puede hacerse - con las siguientes directivas de configuracin, colocadas en un fichero - .htaccess y el directorio deseado:

- -
Options +Includes
-AddType text/html "shtml"
-AddHandler server-parsed shtml
- - -

Tenga en cuenta que AllowOverride Options y - AllowOverride FileInfo deben estar activadas para que estas - directivas tengan efecto.

- -

Por favor vea el tutorial de SSI para una - explicacin ms completa de server-side includes.

-
top
-
-

Reglas de Rewrite en ficheros .htaccess

-

Cuando use RewriteRule en - ficheros .htaccess, 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 peticin de URI - solicitada originalmente. - Considere los siguientes ejemplos:

- -
# En httpd.conf
-RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
-
-# En .htaccess en el directorio raz
-RewriteRule "^images/(.+)\.jpg" "images/$1.png"
-
-# En .htaccess en images/
-RewriteRule "^(.+)\.jpg" "$1.png"
- - -

En un .htaccess en cualquier directorio del DocumentRoot, la - barra ("/") inicial se elimina del valor facilitado a RewriteRule, y en el subdirectorio - images, se elimina /images/ tambin de este valor. - As, su expresin regular necesita omitir tambin esa parte.

- -

Consulte la documentacin de mod_rewrite para - ms detalles al usar mod_rewrite.

- -
top
-
-

Ejemplo de CGI

- -

Finalmente, puede que quiera usar un fichero .htaccess para - permitir la ejecucin de programas CGI en un directorio en particular. Esto - se puede implementar con la siguiente configuracin:

- -
Options +ExecCGI
-AddHandler cgi-script "cgi" "pl"
- - -

Alternativamente, si quiere considerar como programas CGI todos los - ficheros de un directorio concreto, esto se puede conseguir con la siguiente - configuracin:

- -
Options +ExecCGI
-SetHandler cgi-script
- - -

Tenga en cuenta que AllowOverride Options y - AllowOverride FileInfo deben estar ambas activadas para que - estas directivas tengan efecto.

- -

Por favor vea el tutorial CGI para mayor detalle - sobre programacin y configuracin de CGI.

- -
top
-
-

Resolucin de problemas

- -

Cuando pone directivas en un fichero .htaccess y no obtiene - el efecto deseado hay una serie de cosas que pueden haber ido mal.

- -

El problema ms comn es que AllowOverride - no est configurada para que sus directivas puedan surtir - efecto. Asegrese de que no tiene AllowOverride None - configurado para el directorio en cuestin. Una buena forma de probar esto - es poner "basura" en su fichero .htaccess y recargar la pgina. - Si no se genera un error en el servidor, casi seguro que tiene configurado - AllowOverride None.

- -

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 .htaccess no est - permitida.

- -

- [Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here -

- -

Esto indicar que o bien ha usado una directiva que no se permite nunca - en ficheros .htaccess, o que simplementa no tiene - AllowOverride configurado - a un nivel suficiente para la directiva que ha usado. Consulte la - documentacin para esa directiva en particular para determinar cual es el - caso.

- -

Alternativamente, puede que le indique que hay un error de sintaxis en - el uso de la propia directiva.

- -

- [Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters -

- -

En este caso, el mensaje de error debera ser especfico para el error de - sintaxis concreto que ha cometido.

- -
-
-

Idiomas disponibles:  en  | - es  | - fr  | - ja  | - ko  | - pt-br 

-
top

Comentarios

Notice:
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 mailing lists.
+ --> +Tutorial del Servidor Apache HTTP: Ficheros .htaccess - Servidor HTTP Apache Versin 2.5 + + + + + + + +
<-
+
+Apache > Servidor HTTP > Documentacin > Versin 2.5 > How-To / Tutoriales

Tutorial del Servidor Apache HTTP: Ficheros .htaccess

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + pt-br 

+
+ +

Los ficheros .htaccess facilitan una forma de realizar + cambios en la configuracin en contexto directorio.

+
+ +
top
+
+

Ficheros .htaccess

+ + +
Debera evitar usar ficheros .htaccess completamente si + tiene acceso al fichero de configuracin principal de httpd. Usar ficheros + .htaccess ralentiza su servidor Apache http. Cualquier + directiva que pueda incluir en un fichero .htaccess + estar mejor configurada dentro de una seccin + Directory, tendr el mismo efecto y + mejor rendimiento.
+
top
+
+

Qu son/Cmo usarlos

+ + +

Los ficheros .htaccess (o "ficheros de configuracin + distribuida") facilitan una forma de realizar cambios en la configuracin + en contexto directorio. Un fichero, que contiene una o ms directivas, se + coloca en un documento especfico de un directorio, y estas directivas + aplican a ese directorio y todos sus subdirectorios.

+ +

Nota:

+

Si quiere llamar a su fichero .htaccess de otra manera, + puede cambiar el nombre del fichero usando la directiva AccessFileName. Por ejemplo, si usted prefiere + llamar al fichero .config, entonces puede poner lo siguiente + en el fichero de configuracin de su servidor:

+ +
AccessFileName ".config"
+ +
+ +

Generalmente, los ficheros .htaccess usan la misma sintxis + que los ficheros de la configuracin + principal. Lo que puede utilizar en estos ficheros lo determina la + directiva AllowOverride. Esta directiva + especifica, en categoras, qu directivas tendrn efecto si se encuentran en + un fichero .htaccess. Si se permite una directiva en un fichero + .htaccess, la documentacin para esa directiva contendr una + seccin Override, especificando qu valor debe ir en + AllowOverride para que se permita esa + directiva.

+ +

Por ejemplo, si busca en la documentacin la directiva AddDefaultCharset, encontrar que se permite en + ficheros .htaccess. (Vea la lnea de Contexto en el sumario de + la directiva.) La lnea Override muestra + FileInfo. De este modo, debe tener al menos + AllowOverride FileInfo para que esta directiva se aplique en + ficheros .htaccess.

+ +

Ejemplo:

+ + + + + + + + + +
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
+ +

Si no est seguro de cundo, una directiva en concreto, se puede usar en un + fichero .htaccess, consulte la documentacin para esa directiva, + y compruebe la lnea Context buscando ".htaccess".

+
top
+
+

Cuando (no) usar ficheros .htaccess

+ +

Generalmente, solo debera usar ficheros .htaccess cuando no + tiene acceso al fichero principal de configuracin del servidor. Hay, por + ejemplo, una creencia errnea de que la autenticacin de usuario debera + hacerse siempre dentro de ficheros .htaccess, y, ms recientemente, otra creencia errnea de que las directivas de + mod_rewrite deben ir en ficheros .htaccess. + Esto sencillamente no es el caso. Puede poner las configuraciones de + autenticacin de usuario en la configuracin principal del servidor, y esto + es de hecho, el mtodo preferido de configurar Apache. Del mismo modo, las + directivas mod_rewrite funcionan mejor, en muchos sentidos, en + el fichero de configuracin principal del servidor.

+ +

Los ficheros .htaccess deberan usarse cuando su proveedor + de contenidos le permite hacer modificaciones de configuracin + 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 configuracin, puede que sea necesario permitir a usuarios + individuales realizar estos cambios de configuracin en ficheros + .htaccess por ellos mismos. Lo cual ocurre a menudo, por + ejemplo, en casos donde los ISP estn albergando mltiples sitios web de + usuario en una sola mquina, y quieren que sus usuarios tengan la + posibilidad de modificar sus configuraciones.

+ +

Aun as, generalmente, el uso de ficheros .htaccess debera + evitarse cuando sea posible. Cualquier configuracin que considerara poner + en un fichero .htaccess, puede usarse con la misma efectividad + en una seccin <Directory> en el fichero de configuracin + del servidor.

+ +

Hay dos razones para evitar el uso de ficheros .htaccess.

+ +

La primera es el rendimiento. Cuando AllowOverride + est configurado para permitir el uso de ficheros .htaccess, + httpd buscar ficheros .htaccess en cada directorio. As, + permitiendo ficheros .htaccess provoca una prdida de + rendimiento, incluso aunque no los use! Adems, los ficheros + .htaccess se cargan cada vez que se solicita un documento.

+ +

Adems tenga en cuenta que httpd debe buscar ficheros + .htaccess en todos los directorios de mayor jerarqua, + para poder terner la lista completa de directivas que debe aplicar. (Vea + la seccin sobre Cmo se aplican las directivas.) As, si + se solicita un fichero de un directorio /www/htdocs/example, + httpd debe buscar los siguientes ficheros:

+ +

+ /.htaccess
+ /www/.htaccess
+ /www/htdocs/.htaccess
+ /www/htdocs/example/.htaccess +

+ +

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 dara si los + ficheros .htaccess estn activados en /, que + generalmente no es el caso.).

+ +

En el caso de las directivas RewriteRule, en el contexto de + .htaccess estas expresiones regulares deben recompilarse con + cada solicitud a ese directorio, cuando en el contexto de configuracin del + servidor solo se compilan una vez y se cachean. Adicionalmente, las reglas + en s mismas son ms complicadas, puesto que uno debe sortear las + restricciones que vienen acompaadas del contexto directorio y + mod_rewrite. Consulte la Gua de Rewrite para un mayor + detalle sobre este tema.

+ +

La segunda consideracin es de seguridad. Estar permitiendo que usuarios + modifiquen la configuracin del servidor, lo cual puede dar lugar a cambios sobre los que usted no tendr ningn control. Medite profundamente si debe + dar a sus usuarios ese privilegio. Adems tenga en cuenta que dar a los usuarios menos privilegios de los que necesitan dar lugar a ms peticiones + de soporte. Asegrese de que le indica a sus usuarios claramente el nivel de privilegios que les est dando. Especificando exactamente cmo ha + configurado AllowOverride, e invteles + a revisar la documentacin relacionada, lo cual le ahorrar + bastantes confusiones ms adelante.

+ +

Tenga en cuenta que esto es equivalente por completo a poner un fichero + .htaccess en un directorio /www/htdocs/example + con una directiva, y poner la misma directiva en una seccin + Directory <Directory "/www/htdocs/example"> en su + configuracin principal del servidor:

+ +

Fichero .htaccess en /www/htdocs/example:

+ +

Contenido de fichero .htaccess en + /www/htdocs/example

AddType text/example ".exm"
+
+ +

Seccin de su fichero httpd.conf

<Directory "/www/htdocs/example">
+    AddType text/example ".exm"
+</Directory>
+
+ +

Aun as, poniendo sta en el fichero de configuracin dar como resultado + una menor prdida de rendimiento, y como la configuracin se carga una vez + cuando el httpd arranca, en lugar de cada vez que se solicita un fichero.

+ +

El uso de ficheros .htaccess puede desactivarse por completo + configurando la directiva AllowOverride + a none:

+ +
AllowOverride None
+ +
top
+
+

How directives are applied

+ +

Las directivas de configuracin que se encuentran en el fichero + .htaccess se aplican al directorio en el que el fichero + .htaccess se encuentra, y a todos sus subdirectorios. Sin + embargo, es importante recordar que puede haber otros ficheros + .htaccess en directorios previos. Las directivas se aplican en + el orden en el que se encuentran. Por lo tanto, un fichero + .htaccess puede sobrescribir directivas que se encuentran + en ficheros .htaccess que se encuentran en directorios previos + del rbol de directorios. Y estos, en cambio, pueden haber sobrescrito + directivas que se encontraban ms arriba, o en el fichero principal de + configuracin del servidor mismo.

+ +

Ejemplo:

+ +

En el directorio /www/htdocs/example1 tenemos un fichero + .htaccess que contiene lo siguiente:

+ +
Options +ExecCGI
+ + +

(Nota: debe terner "AllowOverride Options" configurado para + permitir el uso de la directiva "Options" en ficheros + .htaccess files.)

+ +

En el directorio /www/htdocs/example1/example2 tenemos un + fichero .htaccess que contiene:

+ +
Options Includes
+ + +

Por este segundo fichero .htaccess, en el directorio + /www/htdocs/example1/example2, la ejecucin de CGI execution no + est permitida, porque solo se ha definido Options Includes, + que sobrescribe completamente una configuracin previa que se pudiera haber + definido.

+ +

Incorporando el .htaccess en los ficheros de + configuracin principal

+ +

Como se ha comentado en la documentacin en las Secciones de Configuracin, los ficheros + .htaccess pueden sobrescribir las secciones <Directory> por el directorio + correspondiente, pero se sobrescribirn por otros tipos de secciones de + configuracin de los ficheros de configuracin principal. Este hecho se + puede usar para forzar ciertas configuraciones, incluso en presencia + de una configuracin laxa de + AllowOverride. Por ejemplo, para + prevenir la ejecucin de un script mientras se permite cualquier otra cosa + en .htaccess puede usar:

+ +
<Directory "/www/htdocs">
+    AllowOverride All
+</Directory>
+
+<Location "/">
+    Options +IncludesNoExec -ExecCGI
+</Location>
+ + +
Este ejemplo asume que su DocumentRoot es /www/htdocs.
+ + +
top
+
+

Ejemplo de Autenticacin

+ +

Si salt directamente a esta parte del documento para averiguar como + hacer la autenticacin, es important que tenga en cuenta una cosa. Hay una + creencia errnea de que necesita usar ficheros .htaccess para + configurar autenticacin con contrasea. Este no es el caso. Colocar las + directivas de autenticacin en una seccin + <Directory>, en su fichero + de configuracin principal, es el mtodo recomendado para configurar esto, + y los ficheros .htaccess deberan usarse solamente si no tiene + acceso al fichero de configuracin principal del servidor. Vea ms arriba una explicacin de cuando debera y cuando no + debera usar ficheros .htaccess.

+ +

Dicho esto, si todava cree que debe usar el fichero + .htaccess, podr ver que una configuracin como la que sigue + podra servirle.

+ +

Contenido del fichero .htaccess:

+ +
AuthType Basic
+AuthName "Password Required"
+AuthUserFile "/www/passwords/password.file"
+AuthGroupFile "/www/passwords/group.file"
+Require group admins
+ + +

Tenga en cuenta que AllowOverride AuthConfig debe estar + habilitado para que estas directivas tengan algn efecto.

+ +

Por favor vea el tutorial de autenticacin para + una explicacin ms completa de la autenticacin y la autorizacin.

+
top
+
+

Ejemplo de Server Side Includes

+ +

Otro uso comn de ficheros .htaccess es activar Server Side + Includes para un directorio en particular. Esto puede hacerse + con las siguientes directivas de configuracin, colocadas en un fichero + .htaccess y el directorio deseado:

+ +
Options +Includes
+AddType text/html "shtml"
+AddHandler server-parsed shtml
+ + +

Tenga en cuenta que AllowOverride Options y + AllowOverride FileInfo deben estar activadas para que estas + directivas tengan efecto.

+ +

Por favor vea el tutorial de SSI para una + explicacin ms completa de server-side includes.

+
top
+
+

Reglas de Rewrite en ficheros .htaccess

+

Cuando use RewriteRule en + ficheros .htaccess, 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 peticin de URI + solicitada originalmente. + Considere los siguientes ejemplos:

+ +
# En httpd.conf
+RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
+
+# En .htaccess en el directorio raz
+RewriteRule "^images/(.+)\.jpg" "images/$1.png"
+
+# En .htaccess en images/
+RewriteRule "^(.+)\.jpg" "$1.png"
+ + +

En un .htaccess en cualquier directorio del DocumentRoot, la + barra ("/") inicial se elimina del valor facilitado a RewriteRule, y en el subdirectorio + images, se elimina /images/ tambin de este valor. + As, su expresin regular necesita omitir tambin esa parte.

+ +

Consulte la documentacin de mod_rewrite para + ms detalles al usar mod_rewrite.

+ +
top
+
+

Ejemplo de CGI

+ +

Finalmente, puede que quiera usar un fichero .htaccess para + permitir la ejecucin de programas CGI en un directorio en particular. Esto + se puede implementar con la siguiente configuracin:

+ +
Options +ExecCGI
+AddHandler cgi-script "cgi" "pl"
+ + +

Alternativamente, si quiere considerar como programas CGI todos los + ficheros de un directorio concreto, esto se puede conseguir con la siguiente + configuracin:

+ +
Options +ExecCGI
+SetHandler cgi-script
+ + +

Tenga en cuenta que AllowOverride Options y + AllowOverride FileInfo deben estar ambas activadas para que + estas directivas tengan efecto.

+ +

Por favor vea el tutorial CGI para mayor detalle + sobre programacin y configuracin de CGI.

+ +
top
+
+

Resolucin de problemas

+ +

Cuando pone directivas en un fichero .htaccess y no obtiene + el efecto deseado hay una serie de cosas que pueden haber ido mal.

+ +

El problema ms comn es que AllowOverride + no est configurada para que sus directivas puedan surtir + efecto. Asegrese de que no tiene AllowOverride None + configurado para el directorio en cuestin. Una buena forma de probar esto + es poner "basura" en su fichero .htaccess y recargar la pgina. + Si no se genera un error en el servidor, casi seguro que tiene configurado + AllowOverride None.

+ +

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 .htaccess no est + permitida.

+ +

+ [Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here +

+ +

Esto indicar que o bien ha usado una directiva que no se permite nunca + en ficheros .htaccess, o que simplementa no tiene + AllowOverride configurado + a un nivel suficiente para la directiva que ha usado. Consulte la + documentacin para esa directiva en particular para determinar cual es el + caso.

+ +

Alternativamente, puede que le indique que hay un error de sintaxis en + el uso de la propia directiva.

+ +

+ [Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters +

+ +

En este caso, el mensaje de error debera ser especfico para el error de + sintaxis concreto que ha cometido.

+ +
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + pt-br 

+
top

Comentarios

Notice:
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 mailing lists.
+//--> \ No newline at end of file diff --git a/docs/manual/howto/htaccess.html.fr b/docs/manual/howto/htaccess.html.fr index dd0933ca01..0ea1cc2b41 100644 --- a/docs/manual/howto/htaccess.html.fr +++ b/docs/manual/howto/htaccess.html.fr @@ -503,7 +503,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/howto/htaccess.htm } })(window, document); //-->