
The entry Directory encloses a group of directives which will apply only to the named directory and sub-directories of that directory. It allows to define completely diferent behaviors depending on the directories.
This kind of entries accept all the options described in the Behavior configuration chapter: Handler, DocumentRoot, Auth, Allow From and OnlySecure.
A directory entry accepts as many of these configuration entries as you want.
Contents |
Paths of the directory entries are relative to the DocumentRoot of the Virtual Host which contains it. If a new DocumentRoot if defined inside the directory entry, it will become its internal location.
Lets imagine the virtual server DocumentRoot configuration entry is set to /var/www.
Directory /tarballs {
Handler file
}
The request /tarballs/cherokee-1.0.0.tar.gz refers to /var/www//tarballs/cherokee-1.0.0.tar.gz
As in the previous examples, lets imagine the general DocumentRoot points to /var/www.
Directory /tarballs {
Handler file
DocumentRoot /mnt/extra/source_tars/
}
The request /tarballs/cherokee-1.0.0.tar.gz refers to /mnt/extra/source_tars/cherokee-1.0.0.tar.gz
It is very common to use this feature to redefine the path of the /icons and /cgi-bin web directories. A usual configuration is:
Directory /icons {
Handler file
DocumentRoot /usr/share/cherokee/icons
}
Directory /cgi-bin {
Handler cgi
DocumentRoot /usr/lib/cgi-bin
}
In this way, it is possible to have some paths accessible from the web, outside the main web directory.
Lets imagine the DocumentRoot of the current virtual host is set to /var/www/ directory.
Directory /download {
Allow From 127.0.0.1, 192.168.0.0/16
}
Directory /download/films {
DocumentRoot /var/films/
Handler file
}
The request /download/films/pulpfiction.avi would be processed in this way:
This examples shows that the Directory inheritance mechanism doesn't overwrite settings.
Directory /secrets {
Allow From 10.0.0.0/8, 127.0.0.1, 192.168.0.0/16
}
Directory /secrets/important {
Allow From 127.0.0.1
}
The request /secrets/important/file.tar.gz will only success if it is made from localhost. No matters is the connection comes from one of the network ranges described on the /secrets directory.