> ### Apache HTTP Server Version 2.0

> # Apache Module mod_userdir

> Description: | <description>This module provides for user-specific directories.</description>
> Status: | Base
> Module Identifier: | userdir_module

> ## Summary

> ## Directives

> - UserDir

> ## UserDir Directive

> Description: | Sets the directory from which to serve files when requests for a particular user are received, denoted by requests containing ~username, such as http://server.example.com/~bob/
> Syntax: | <syntax>UserDir directory-filename</syntax>
> 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.

> <usage>

> 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 directive used | Translated path
> --- | ---
> 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 directive used | Translated path
> --- | ---
> 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`

> </usage>

> ### Apache HTTP Server Version 2.0