En este artículo veremos la creación de un directorio virtual en Apache 2.2.
Un directorio virtual, como su propio nombre indica, es un directorio que se encuentra en un directorio distinto del sistema de ficheros del que se mapea en la URL. Esto permite contenido que no está en el documento raíz (DocumentRoot) del servidor de apache (directorio htdocs). De ello se encarga el módulo de apache mod_alias que viene habilitado por defecto en el fichero de definición de Apache httpd.conf (dentro del directorio /conf).
Para crear un directorio virtual en Apache, se emplea la directiva Alias. Veamos un ejemplo:
Alias /imagenes /ftp/pub/imagenes
Esto hará que una petición HTTP del tipo:
http://www.midominio.com/imagenes/logo.gif
retorne el archivo logo.gif situado en la ruta
/ftp/pub/imagenes
Sólo mapeará correctamente si coincide exactamente el segmento de la URL, es decir, si la petición es
http://www.midominio.com/imagenes2/logo.gif
el resultado no será el esperado y no encontrará el mapeo.
Debemos de tener cuidado si finalizamos el mapeo con una barra inclinada, /, ya que entonces necesitará esta barra para mapear la URL. Si creamos un alias:
Alias /descargas/ /ftp/pub/descargas/
una petición HTTP
http://www.midominio.com/descargas
no será mapeada, ya que no finaliza en / .
Para cada Alias deberás definir nuevas secciones <Directory> que cubran los directorios de destino de los aliases, permitiendo el acceso a dichos directorios. Debe tener un aspecto similar a este:
Alias /imagenes /ftp/pub/imagenes
<Directory /ftp/pub/imagenes>
Order allow,deny
Allow from all</Directory>
Por último, si has creado dos o más directivas Alias que aplican a la misma sub-ruta (sub-path), debes dar precedencia a la ruta más restrictiva para que las directivas tengan efecto, es decir, que el orden en el que los definas es importante:
Alias /imagenes/deportes /ftp/pub/noticias/imagenes/deportes
<Directory /ftp/pub/noticias/imagenes/deportes>
Order allow,deny
Allow from all</Directory>
Alias /imagenes /ftp/pub/imagenes
<Directory /ftp/pub/imagenes>
Order allow,deny
Allow from all
</Directory>
Existe otra directiva, AliasMatch, similar a la directiva Alias salvo que ésta emplea expresiones regulares para definir la URL que se va a mapear.
Fuentes:



