Apache HTTP Server Version 2.4
This document explains how the Apache HTTP Server uses the URL of a request to determine the filesystem location from which to serve a file.
Related Modules | Related Directives |
---|---|
In deciding what file to serve for a given request, httpd's
default behavior is to take the URL-Path for the request (the part
of the URL following the hostname and port) and add it to the end
of the DocumentRoot
specified
in your configuration files. Therefore, the files and directories
underneath the DocumentRoot
make up the basic document tree which will be visible from the
web.
For example, if DocumentRoot
were set to /var/www/html
then a request for
http://www.example.com/fish/guppies.html
would result
in the file /var/www/html/fish/guppies.html
being
served to the requesting client.
If a directory is requested (i.e. a path ending with
/
), the file served from that directory is defined by
the DirectoryIndex
directive.
For example, if DocumentRoot
were set as above, and
you were to set:
DirectoryIndex index.html index.php
Then a request for http://www.example.com/fish/
will
cause httpd to attempt to serve the file
/var/www/html/fish/index.html
. In the event that
that file does not exist, it will next attempt to serve the file
/var/www/html/fish/index.php
.
If neither of these files existed, the next step is to
attempt to provide a directory index, if
mod_autoindex
is loaded and configured to permit
that.
httpd is also capable of Virtual
Hosting, where the server receives requests for more than one
host. In this case, a different DocumentRoot
can be specified for each
virtual host, or alternatively, the directives provided by the
module mod_vhost_alias
can
be used to dynamically determine the appropriate place from which
to serve content based on the requested IP address or
hostname.
The DocumentRoot
directive
is set in your main server configuration file
(httpd.conf
) and, possibly, once per additional Virtual Host you create.
There are frequently circumstances where it is necessary to
allow web access to parts of the filesystem that are not strictly
underneath the DocumentRoot
. httpd offers several
different ways to accomplish this. On Unix systems, symbolic links
can bring other parts of the filesystem under the DocumentRoot
. For security reasons,
httpd will follow symbolic links only if the Options
setting for the relevant
directory includes FollowSymLinks
or
SymLinksIfOwnerMatch
.
Alternatively, the Alias
directive will map any part
of the filesystem into the web space. For example, with
Alias "/docs" "/var/web"
the URL http://www.example.com/docs/dir/file.html
will be served from /var/web/dir/file.html
. The
ScriptAlias
directive
works the same way, with the additional effect that all content
located at the target path is treated as