Differences between revisions 3 and 4
Revision 3 as of 2007-06-15 04:52:57
Size: 21555
Comment: xsltest v0.1. Much better but not there yet
Revision 4 as of 2009-09-20 22:13:31
Size: 21731
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
 Las directivas en los [http://httpd.apache.org/docs/2.3/./configuring.html ficheros de configuración] pueden actuar sobre  Las directivas en los [[http://httpd.apache.org/docs/2.3/./configuring.html|ficheros de configuración]] pueden actuar sobre
Line 47: Line 47:
  * [http://httpd.apache.org/docs/2.3/./mod/core.html core]

  * [http://httpd.apache.org/docs/2.3/./mod/mod_version.html mod_version]

  * [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html mod_proxy]
  * [[http://httpd.apache.org/docs/2.3/./mod/core.html|core]]

  * [[http://httpd.apache.org/docs/2.3/./mod/mod_version.html|mod_version]]

  * [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html|mod_proxy]]
Line 55: Line 55:
  * [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch <DirectoryMatch>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch <FilesMatch>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine <IfDefine>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule <IfModule>]

  *
[http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion <IfVersion>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch <LocationMatch>]

  *
[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy <Proxy>]

  *
[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxymatch <ProxyMatch>]

  *
[http://httpd.apache.org/docs/2.3/./mod/core.html#virtualhost <VirtualHost>]
  * [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch|<DirectoryMatch>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch|<FilesMatch>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine|<IfDefine>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule|<IfModule>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion|<IfVersion>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch|<LocationMatch>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy|<Proxy>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxymatch|<ProxyMatch>]]

  * [
[http://httpd.apache.org/docs/2.3/./mod/core.html#virtualhost|<VirtualHost>]]
Line 82: Line 82:
los contenedores [http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine <IfDefine>] , [http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule <IfModule>] , e
 [http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion <IfVersion>]
los contenedores [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine|<IfDefine>]] , [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule|<IfModule>]] , e
 [[http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion|<IfVersion>]]
Line 89: Line 89:
La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine <IfDefine>] La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine|<IfDefine>]]
Line 107: Line 107:
La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule <IfModule>] La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule|<IfModule>]]
Line 111: Line 111:
línea con la directiva [http://httpd.apache.org/docs/2.3/./mod/mod_so.html#loadmodule LoadModule] línea con la directiva [[http://httpd.apache.org/docs/2.3/./mod/mod_so.html#loadmodule|LoadModule]]
Line 118: Line 118:
En el siguiente ejemplo, la directiva [http://httpd.apache.org/docs/2.3/./mod/mod_mime_magic.html#mimemagicfiles MimeMagicFiles] se aplicará solamente si
 [http://httpd.apache.org/docs/2.3/./mod/mod_mime_magic.html mod_mime_magic] está disponible.
En el siguiente ejemplo, la directiva [[http://httpd.apache.org/docs/2.3/./mod/mod_mime_magic.html#mimemagicfiles|MimeMagicFiles]] se aplicará solamente si
 [[http://httpd.apache.org/docs/2.3/./mod/mod_mime_magic.html|mod_mime_magic]] está disponible.
Line 132: Line 132:
La directiva [http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion <IfVersion>]
es muy similar a las directivas [http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine <IfDefine>]  e [http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule <IfModule>] , exceptuando que agrupa directivas que se aplicarán solamente
La directiva [[http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion|<IfVersion>]]
es muy similar a las directivas [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine|<IfDefine>]] e [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule|<IfModule>]] , exceptuando que agrupa directivas que se aplicarán solamente
Line 152: Line 152:
Las directivas [http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine <IfDefine>] ,
 [http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule <IfModule>] , e
 [http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion <IfVersion>]
Las directivas [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifdefine|<IfDefine>]] ,
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#ifmodule|<IfModule>]] , e
 [[http://httpd.apache.org/docs/2.3/./mod/mod_version.html#ifversion|<IfVersion>]]
Line 181: Line 181:
Las directivas [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>]
y [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>]
Las directivas [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]]
y [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]]
Line 185: Line 185:
sistema de ficheros. Directivas contenidas en una sección [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] se aplican a la carpeta en el sistema sistema de ficheros. Directivas contenidas en una sección [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] se aplican a la carpeta en el sistema
Line 202: Line 202:
Directivas contenidas por una sección [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>] son aplicadas a cualquier fichero con el nombre Directivas contenidas por una sección [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]] son aplicadas a cualquier fichero con el nombre
Line 222: Line 222:
 [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>] y
 [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>]
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]] y
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]]
Line 246: Line 246:
La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>] La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]]
Line 267: Line 267:
La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>] La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]]
Line 269: Line 269:
una URL determinada a un handler interno de Apache provisto por [http://httpd.apache.org/docs/2.3/./mod/mod_status.html mod_status] . una URL determinada a un handler interno de Apache provisto por [[http://httpd.apache.org/docs/2.3/./mod/mod_status.html|mod_status]] .
Line 288: Line 288:
Las directivas [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] ,
 [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>] , y
 [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>]
Las directivas [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] ,
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]] , y
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]]
Line 299: Line 299:
basada en expresiones regulares (regex) [http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch <DirectoryMatch>] , [http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch <FilesMatch>] , y [http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch <LocationMatch>] que permiten utilizar basada en expresiones regulares (regex) [[http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch|<DirectoryMatch>]] , [[http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch|<FilesMatch>]] , y [[http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch|<LocationMatch>]] que permiten utilizar
Line 340: Line 340:
siempre se ha de utilizar [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>]  o [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>] . Cuando se aplican directivas a objetos que no siempre se ha de utilizar [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] o [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]] . Cuando se aplican directivas a objetos que no
Line 342: Line 342:
se ha de emplear [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>] .

Es importante destacar que nunca se ha de usar [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>] cuando se intenta restringir el acceso a objetos
se ha de emplear [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]] .

Es importante destacar que nunca se ha de usar [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]] cuando se intenta restringir el acceso a objetos
Line 364: Line 364:
http://yoursite.example.com/DIR/. La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] , en cambio, se http://yoursite.example.com/DIR/. La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] , en cambio, se
Line 368: Line 368:
del sistema de ficheros a través de enlaces. La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] seguirá estos enlaces sin reiniciar el nombre de la carpeta. del sistema de ficheros a través de enlaces. La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] seguirá estos enlaces sin reiniciar el nombre de la carpeta.
Line 370: Line 370:
 [http://httpd.apache.org/docs/2.3/./mod/core.html#options Options] apropiada.)  [[http://httpd.apache.org/docs/2.3/./mod/core.html#options|Options]] apropiada.)
Line 385: Line 385:
El contenedor [http://httpd.apache.org/docs/2.3/./mod/core.html#virtualhost <VirtualHost>] El contenedor [[http://httpd.apache.org/docs/2.3/./mod/core.html#virtualhost|<VirtualHost>]]
Line 394: Line 394:
Los contenedores [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy <Proxy>]
y [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxymatch <ProxyMatch>]
Los contenedores [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy|<Proxy>]]
y [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxymatch|<ProxyMatch>]]
Line 397: Line 397:
un servidor proxy [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html mod_proxy] que coincide con la URL solicitada. un servidor proxy [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html|mod_proxy]] que coincide con la URL solicitada.
Line 419: Line 419:
 [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>]  [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]]
Line 421: Line 421:
 [http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch <DirectoryMatch>] ,
 [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>] ,
 [http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch <FilesMatch>] ,
 [http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch <LocationMatch>] ,
 [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy <Proxy>] ,
y [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxymatch <ProxyMatch>]
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch|<DirectoryMatch>]] ,
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]] ,
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch|<FilesMatch>]] ,
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch|<LocationMatch>]] ,
 [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy|<Proxy>]] ,
y [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxymatch|<ProxyMatch>]]
Line 430: Line 430:
La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#allowoverride AllowOverride] sólo funciona en secciones
 [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] .

Las [http://httpd.apache.org/docs/2.3/./mod/core.html#options Options] FollowSymLinks y
SymLinksIfOwnerMatch solamente funcionan en secciones [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] o en ficheros
La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#allowoverride|AllowOverride]] sólo funciona en secciones
 [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] .

Las [[http://httpd.apache.org/docs/2.3/./mod/core.html#options|Options]] FollowSymLinks y
SymLinksIfOwnerMatch solamente funcionan en secciones [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] o en ficheros
Line 437: Line 437:
La directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#options Options] no se puede utilizar
en secciones [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>]
ni [http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch <FilesMatch>] .
La directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#options|Options]] no se puede utilizar
en secciones [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]]
ni [[http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch|<FilesMatch>]] .
Line 455: Line 455:
        [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] (exceptuando expresiones regulares)         [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] (exceptuando expresiones regulares)
Line 458: Line 458:
       [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] )

       [http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch <DirectoryMatch>]
       [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] )

       [[http://httpd.apache.org/docs/2.3/./mod/core.html#directorymatch|<DirectoryMatch>]]
Line 463: Line 463:
       [http://httpd.apache.org/docs/2.3/./mod/core.html#files <Files>] y [http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch <FilesMatch>] simultáneamente

       [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>]
      y [http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch <LocationMatch>] simultáneamente


    Aparte de [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] , cada grupo es procesado en el orden en que aparece
    en los ficheros de configuración. [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] (el grupo 1 arriba)
       [[http://httpd.apache.org/docs/2.3/./mod/core.html#files|<Files>]] y [[http://httpd.apache.org/docs/2.3/./mod/core.html#filesmatch|<FilesMatch>]] simultáneamente

       [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]]
      y [[http://httpd.apache.org/docs/2.3/./mod/core.html#locationmatch|<LocationMatch>]] simultáneamente


    Aparte de [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] , cada grupo es procesado en el orden en que aparece
    en los ficheros de configuración. [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] (el grupo 1 arriba)
Line 473: Line 473:
    <Directory /var/web/dir/subdir>. Si múltiples secciones [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] son aplicables a la misma carpeta,     <Directory /var/web/dir/subdir>. Si múltiples secciones [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] son aplicables a la misma carpeta,
Line 475: Line 475:
    incluídas a través de la directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#include Include] serán tratados como si estuviesen dentro del fichero que las incluye en la
    ubicación de la directiva [http://httpd.apache.org/docs/2.3/./mod/core.html#include Include] .

    Secciones dentro de directivas [http://httpd.apache.org/docs/2.3/./mod/core.html#virtualhost <VirtualHost>]  son aplicadas
    incluídas a través de la directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#include|Include]] serán tratados como si estuviesen dentro del fichero que las incluye en la
    ubicación de la directiva [[http://httpd.apache.org/docs/2.3/./mod/core.html#include|Include]] .

    Secciones dentro de directivas [[http://httpd.apache.org/docs/2.3/./mod/core.html#virtualhost|<VirtualHost>]] son aplicadas
Line 482: Line 482:
    Cuando la petición es atendida por [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html mod_proxy] , el contenedor
     [http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy <Proxy>]
    toma el lugar del contenedor [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>]  en el orden de procesamiento.
    Cuando la petición es atendida por [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html|mod_proxy]] , el contenedor
     [[http://httpd.apache.org/docs/2.3/./mod/mod_proxy.html#proxy|<Proxy>]]
    toma el lugar del contenedor [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] en el orden de procesamiento.
Line 536: Line 536:
puestas en las secciones [http://httpd.apache.org/docs/2.3/./mod/core.html#directory <Directory>] , the sección [http://httpd.apache.org/docs/2.3/./mod/core.html#location <Location>] será evaluada al último y permitirá puestas en las secciones [[http://httpd.apache.org/docs/2.3/./mod/core.html#directory|<Directory>]] , the sección [[http://httpd.apache.org/docs/2.3/./mod/core.html#location|<Location>]] será evaluada al último y permitirá

THIS IS AN UNOFFICIAL TRANSLATION OF AN OFFICIAL DOCUMENT, FOR REVIEW PURPOSES ONLY

ESTA ES UNA TRADUCCIóN NO OFICIAL DE UN DOCUMENTO OFICIAL, ES SOLAMENTE PARA REVISIóN

THE FORMATTING IS MESSED UP WHILE I FIGURE OUT A PROPER XSL TEMPLATE TO OUTPUT WIKI CODE

Secciones de configuración

el servidor completo, o pueden restringir su ámbito de actuación a directorios, ficheros, hosts o URLs específicos. Este documento describe como usar secciones de configuración o ficheros .htaccess para cambiar el ámbito de las directivas de configuración.

* [Tipos de contenedores de secciones de configuración]

* [Sistema de ficheros y espacio web]

* [Hosts virtuales]

* [Proxy]

* [¿Qué directivas son permitidas?]

* [Como se mezclan las secciones]

Tipos de contenedores de secciones de configuración

Módulos Relacionados

Directivas Relacionadas

Existen dos tipos base de contenedores, la mayoría de ellos son evaluados en cada petición. Las directivas almacenadas en estos contenedores son solamente aplicadas a aquellas peticiones que coincidan con las condiciones definidas en los contenedores. Por el contrario, los contenedores <IfDefine> , <IfModule> , e

son evaluados solamente al reiniciar o iniciar el servidor. Si sus condiciones son ciertas al inicio, entonces las directivas almacenadas serán aplicadas a todas las peticiones. Si las condiciones son falsas, las directivas serán ignoradas.

La directiva <IfDefine> almacena directivas que solamente serán aplicadas si el parámetro apropiado es especificado en la línea de comandos de httpd. Por ejemplo, con la siguiente configuración, todas las peticiones serán redireccionadas a otro sitio siempre y cuando el servidor sea iniciado usando httpd -DHoyCerramos:

<IfDefine HoyCerramos>
Redirect / http://otherserver.example.com/
</IfDefine>

La directiva <IfModule> es muy similar, sólo que agrupa directivas que serán aplicadas exclusivamente si un módulo específico está disponible en el servidor. El módulo debe estar compilado estáticamente, o bien dinámicamente y la línea con la directiva LoadModule debe estar antes en el fichero de configuración. Esta directiva debe usarse solamente cuando es necesario que el fichero de configuración funcione de manera independiente a los módulos instalados en el servidor. No debe usarse para agrupar directivas que deben funcionar siempre, puesto que puede suprimir mensajes de error sobre módulos faltantes.

En el siguiente ejemplo, la directiva MimeMagicFiles se aplicará solamente si

<IfModule mod_mime_magic.c>
MimeMagicFile conf/magic
</IfModule>

La directiva <IfVersion> es muy similar a las directivas <IfDefine> e <IfModule> , exceptuando que agrupa directivas que se aplicarán solamente si una versión determinada del servidor se está ejecutando. Este módulo está diseñado para el uso en conjuntos de pruebas o en grandes redes que deben lidiar con diferentes versiones de httpd y diferentes configuraciones.

  <IfVersion >= 2.1>

    # esto solamente ocurre en versiones mayores que o iguales a
    # 2.1.0.

  </IfVersion>

Las directivas <IfDefine> ,

pueden negar sus condiciones anteponiendo a la condición un "!". Además, estas secciones pueden anidarse para generar restricciones más complejas.

Sistema de ficheros y espacio web

Los contenedores más comúnmente usados son los que cambian la configuración del servidor para lugares determinados del sistema de ficheros o del espacio web (esto es, URLs). En primer lugar, es importante comprender la diferencia entre ambos. El sistema de ficheros es la manera en la que el sistema operativo ve a los discos y su contenido. Por ejemplo, en una instalación por omisión, Apache está en la carpeta /usr/local/apache2 en un sistema de ficheros Unix o en "c:/Program Files/Apache Group/Apache2" en un sistema de ficheros Windows. (Siempre ha de usarse "/" como separador de carpetas en Apache, incluso en Windows.) Por otro lado, el espacio web es la vista del sitio como lo despacha el servidor y como es visto por los clientes. Así, el path /dir/ en el espacio web corresponde al path /usr/local/apache2/htdocs/dir/ en el sistema de ficheros en una instalación de Apache por omisión en Unix. El espacio web puede no estar correlacionado directamente con el sistema de ficheros, dado que las páginas pueden ser generadas dinámicamente desde bases de datos u otros medios. Además, las URL pueden ser modificadas al vuelo mediante diversos mecanismos.

Contenedores del sistema de ficheros

Las directivas <Directory> y <Files> , así como sus contrapartes basadas en regex , hacen que las directivas contenidas sean aplicadas a partes del sistema de ficheros. Directivas contenidas en una sección <Directory> se aplican a la carpeta en el sistema de ficheros con el nombre especificado en la directiva y también se aplican a todas sus subcarpetas. El mismo efecto se obtiene usando ficheros ["howto/htaccess.html" .htaccess]. Por ejemplo, en la configuración que sigue, los índices de carpeta serán habilitados para /var/web/dir1 y todas sus subcarpetas.

<Directory /var/web/dir1>
Options +Indexes
</Directory>

Directivas contenidas por una sección <Files> son aplicadas a cualquier fichero con el nombre especificado, sin tener en cuenta la carpeta en el que éste se encuentre. Por ejemplo, las siguientes directivas puestas en la sección principal del fichero de configuración denegarán el acceso a cualquier fichero llamado privado.html sin considerar dónde se encuentre.

<Files privado.html>
Order allow,deny
Deny from all
</Files>

Para aplicar la configuración solamente a ficheros en una parte determinada del sistema de ficheros, las secciones

pueden combinarse. Por ejemplo, la siguiente configuración denegará el acceso a /var/web/dir1/privado.html, /var/web/dir1/subdir2/privado.html, /var/web/dir1/subdir3/privado.html, y cualquier otra instancia de privado.html bajo la carpeta /var/web/dir1/.

<Directory /var/web/dir1>
<Files privado.html>
Order allow,deny
Deny from all
</Files>
</Directory>

Contenedores del espacio web

La directiva <Location> y su contraparte basada en regex cambian la configuración para el contenido en el espacio web. Por ejemplo, la siguiente configuración previene el acceso a cualquier URL que comience con /privado. En concreto, se aplicará a peticiones por http://sitio.example.com/privado, http://sitio.example.com/privado123, y por http://sitio.example.com/privado/dir/file.html así como a cualquier otra petición que comience con la cadena /privado.

<Location /privado>
Order Allow,Deny
Deny from all
</Location>

La directiva <Location> no tiene porqué tener que ver con el sistema de ficheros. Por ejemplo, el siguiente ejemplo muestra cómo mapear una URL determinada a un handler interno de Apache provisto por mod_status . No necesita existir en el sistema de ficheros un fichero llamado server-status.

<Location /server-status>
SetHandler server-status
</Location>

Comodines y Expresiones Regulares

Las directivas <Directory> ,

pueden usar comodines de línea de comando como en la función de la biblioteca estándar de C fnmatch. El caracter "*" equivale a cualquier secuencia de caracteres, "?" equivale a cualquier caracter y "[seq]" equivale a cualquier caracter en seq. El caracter "/" no será capturado por ningún comodín, ha de ser especificado explícitamente.

Si se necesitan comparaciones aún más flexibles, cada contenedor tiene una contraparte basada en expresiones regulares (regex) <DirectoryMatch> , <FilesMatch> , y <LocationMatch> que permiten utilizar expresiones regulares compatibles con Perl. Más adelante se describe como cambia la forma de aplicar estas secciones cuando se utiliza algún contenedor basado en regexes.

Una sección que utiliza un comodín para cambiar la configuración de todos las carpetas de usuario es la que sigue:

<Directory /home/*/public_html>
Options Indexes
</Directory>

Usando secciones basadas en regexes, podemos denegar el acceso a muchos tipos de archivo simultáneamente:

<FilesMatch \.(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>

Qué usar cuándo

Escoger entre contenedores del sistema de ficheros y del espacio web es bastante fácil. Cuando se aplican directivas a objetos que residen en el sistema de ficheros, siempre se ha de utilizar <Directory> o <Files> . Cuando se aplican directivas a objetos que no residen en el sistema de ficheros, como una página creada desde una base de datos, se ha de emplear <Location> .

Es importante destacar que nunca se ha de usar <Location> cuando se intenta restringir el acceso a objetos en el sistema de ficheros. Esto es porque muchas URLs pueden equivaler a una misma ubicación en el sistema de ficheros, de este modo inutilizando la restricción. Por ejemplo:

<Location /dir/>
Order allow,deny
Deny from all
</Location>

Esto funciona bien para la petición http://yoursite.example.com/dir/. Pero ¿qué ocurre si se está en un sistema de ficheros que no distingue mayúsculas? En este caso la restricción será fácilmente anulada mediante la petición http://yoursite.example.com/DIR/. La directiva <Directory> , en cambio, se aplicará a cualquier contenido servido desde esa ubicación especifica en el sistema de ficheros, sin tener en cuenta el nombre que se le da en el espacio web (una excepción a esta regla son los enlaces simbólicos, el mismo directorio puede estar en más de una parte del sistema de ficheros a través de enlaces. La directiva <Directory> seguirá estos enlaces sin reiniciar el nombre de la carpeta. De este modo, para el máximo nivel de seguridad, los enlaces simbólicos han de deshabillitarse con la directiva

Si se piensa que nada de esto es aplicable porque el sistema de ficheros en uso es sensible a mayúsculas, se ha de recordar que hay muchas otras formas de mapear múltiples ubicaciones del espacio web a la misma ubicación en el sistema de ficheros. Por lo tanto siempre se ha de utilizar contenedores del sistema de ficheros cuando sea posible. Sin embargo, hay una excepción a esta regla. Poner restricciones de configuración en una sección <Location/> es perfectamente seguro porque esta sección se aplicará para todas las peticiones sin considerar la URL específica que se solicite.

Hosts virtuales

El contenedor <VirtualHost> agrupa directivas que se aplican a hosts determinados. Esto es útil cuando se sirven múltiples hosts desde la misma máquina con una configuración distinta para cada uno. Para mayor información, ver la ["vhosts/" documentación de Hosts Virtuales].

Proxy

Los contenedores <Proxy> y <ProxyMatch> aplican la configuración contenida solamente a los sitios accedidos a través de un servidor proxy mod_proxy que coincide con la URL solicitada. Por ejemplo, la siguiente configuración prevendrá que el servidor proxy sea utilizado para acceder al sitio cnn.com.

<Proxy http://cnn.com/*>
Order allow,deny
Deny from all
</Proxy>

¿Qué directivas son permitidas?

Para averiguar qué directivas se pueden utilizar en qué secciones de configuración, se ha de revisar el ["mod/directive-dict.html#Context" Contexto] de la directiva. Todo lo que se permite en las secciones

es también permitido en las secciones

y <ProxyMatch> . Hay algunas excepciones:

La directiva AllowOverride sólo funciona en secciones

Las Options FollowSymLinks y SymLinksIfOwnerMatch solamente funcionan en secciones <Directory> o en ficheros .htaccess.

La directiva Options no se puede utilizar en secciones <Files> ni <FilesMatch> .

Como se mezclan las secciones

Las secciones de configuración son aplicadas en un orden específico. Dado que puede tener un efecto significativo en cómo son interpretadas las directivas de configuración, es importante entender cómo funciona.

  • El orden es:

A.

  • Aparte de <Directory> , cada grupo es procesado en el orden en que aparece en los ficheros de configuración. <Directory> (el grupo 1 arriba) se procesa desde la porción más corta del nombre de la carpeta hasta la más larga. Por ejemplo, <Directory /var/web/dir> será procesado antes que <Directory /var/web/dir/subdir>. Si múltiples secciones <Directory> son aplicables a la misma carpeta, éstas son procesadas en el orden en que aparecen en el fichero de configuración. Configuraciones incluídas a través de la directiva Include serán tratados como si estuviesen dentro del fichero que las incluye en la ubicación de la directiva Include .

    Secciones dentro de directivas <VirtualHost> son aplicadas después de las secciones correspondientes fuera de la definición del host virtual. Esto permite que los hosts virtuales puedan superseder a la configuración principal.

    Cuando la petición es atendida por mod_proxy , el contenedor

    toma el lugar del contenedor <Directory> en el orden de procesamiento. Los contenidos de las secciones posteriores superseden a los de las anteriores.

Nota Técnica

  • Hay una secuencia que se realiza justo antes de la fase de traducción

    de nombres (donde los Aliases y DocumentRoots se utilizan para mapear URLs a nombres de ficheros). Los resultados de esta secuencia son descartados completamente una vez que la fase de traducción ha terminado.

Algunos Ejemplos

A continuación hay un ejemplo que pretende mostrar el orden de la mezcla. Asumiendo que todos se aplican a la petición, las directivas del ejemplo se aplicarán en el orden A > B > C > D > E.

<Location />
E
</Location>

<Files f.html>
D
</Files>

<VirtualHost *>
<Directory /a/b>
B
</Directory>
</VirtualHost>

<DirectoryMatch "^.*b$">
C
</DirectoryMatch>

<Directory /a/b>
A
</Directory>

Otro ejemplo, un poco más concreto. Sin considerar las restricciones de acceso puestas en las secciones <Directory> , the sección <Location> será evaluada al último y permitirá acceso sin restricciones al servidor. En otras palabras, el orden de la mezcla es importante, así que se debe ser cuidadadoso.

<Location />
Order deny,allow
Allow from all
</Location>

# Ups!  Esta sección <Directory> no tendrá efecto
<Directory />
Order allow,deny
Allow from all
Deny from chicomalo.example.com
</Directory>

Translations/Spanish/sections.xml.es (last edited 2009-09-20 22:13:31 by localhost)