Apache module mod_userdir

### Apache HTTP Server Version 1.3

# Module mod_userdir

This module provides for user-specific directories.

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

## Directives

- UserDir

## 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 <Directory> directive and the Security Tips page for more information.

Additional examples:

To allow a few users to have `UserDir` directories, but not anyone else, use the following:

    UserDir disabled
    UserDir enabled user1 user2 user3

To allow most users to have `UserDir` directories, but deny this to a few, use the following:

    UserDir enabled
    UserDir disabled user4 user5 user6

### Apache HTTP Server Version 1.3