Directiva <Directory>
Sintaxis: <Directory ruta-a-directorio> ... </Directory>
Contexto: server config, virtual host
La directiva contenedora <Directory> se utiliza para configurar el comportamiento de un directorio y de todo el contenido que cuelga de él. Solo se pueden incluir directivas del contexto directory y no permite el anidamiento.
En ruta-a-directorio se especifica la ruta absoluta del directorio(s) que queremos configurar, pudiéndose utilizar los caracteres wildcard *, ? y [ ], y estos nunca incluyen el carácter de separación de directorios ( / ), algo muy importante a tener en cuenta, pues en el caso de usar /*/public_html, este patrón no casaría con /home/u1/public_html ni con /home/u2/public_html, para que casara con ambos, el patrón debería ser /home/*/public_html.
El contenido de ruta-a-directorio puede ir sin entrecomillar, solo es obligatorio poner las comillas cuando se especifican directorios cuyo nombre contienen espacios.
Si varias directivas <Directory> afectaran al mismo directorio, por ejemplo:
<Directory /home>
...
</Directory>
<Directory />
...
</Directory>
<Directory /home/u1>
...
</Directory>
el orden en el que se aplicarán las directivas sobre /home/u1, será empezando por la ruta más corta y terminando por la ruta más larga, por lo que primero se aplica /, posteriormente /home y por último /home/u1, prevaleciendo siempre, cuando hay solapamiento, la última directiva ejecutada.
Es posible también hacer referencia a directorios a través de una expresión regular de tipo Perl, y para ello está la directiva contenedora <DirectoryMatch>.
Directiva <DirectoryMatch>
Sintaxis: <DirectoryMatch expresión-regular-de-directorios> ... </Directory>
Contexto: server config, virtual host
Esta directiva se aplica siempre después de que se hayan aplicado las directivas <Directory>, por lo tanto tiene menor prioridad en el orden de evaluación.
En el ejemplo siguiente configuraríamos el directorio public_html de los usuarios u1, u2, ..., u14, ..., del sistema:
<DirectoryMatch "^/home/u[0-9]+/public_html>
...
</DirectoryMatch>