• 12/10/2003

Apache module mod_userdir

This module provides for user-specific directories.

Status: Base
Source File: mod_userdir.c
Module Identifier: userdir_module


UserDir directive

Syntax: UserDir directory-filename
Default: UserDir public_html
Context: server config, virtual host
Status: Base
Module: mod_userdir
Compatibility: All forms except the UserDir public_html form are only available in Apache 1.1 or above. Use of the enabled keyword, or disabled with a list of usernames, is only available in Apache 1.3 and above.

The UserDir directive sets the real directory in a user’s home directory to use when a request for a document for a user is received. Directory-filename is one of the following:

  • The name of a directory or a pattern such as those shown below.
  • The keyword disabled. This turns off all username-to-directory translations except those explicitly named with the enabled keyword (see below).
  • The keyword disabled followed by a space-delimited list of usernames. Usernames that appear in such a list will never have directory translation performed, even if they appear in an enabled clause.
  • The keyword enabled followed by a space-delimited list of usernames. These usernames will have directory translation performed even if a global disable is in effect, but not if they also appear in a disabled clause.

If neither the enabled nor the disabled keywords appear in the Userdir directive, the argument is treated as a filename pattern, and is used to turn the name into a directory specification. A request for http://www.foo.com/~bob/one/two.html will be translated to:

UserDir public_html     -> ~bob/public_html/one/two.html
UserDir /usr/web        -> /usr/web/bob/one/two.html
UserDir /home/*/www     -> /home/bob/www/one/two.html

The following directives will send redirects to the client:

UserDir http://www.foo.com/users -> http://www.foo.com/users/bob/one/two.html
UserDir http://www.foo.com/*/usr -> http://www.foo.com/bob/usr/one/two.html
UserDir http://www.foo.com/~*/   -> http://www.foo.com/~bob/one/two.html

Be careful when using this directive; for instance, “UserDir ./” would map “/~root” to “/” – which is probably undesirable. If you are running Apache 1.3 or above, it is strongly recommended that your configuration include a “UserDir disabled root” declaration. See also the directive and the Security Tips page for more information.

Apache HTTP Server Version 1.3