1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?>
<modulesynopsis>
<name>mod_userdir</name>
<description>Provides for user-specific
directories</description>
<status>Base</status>
<sourcefile>mod_userdir.c</sourcefile>
<identifier>userdir_module</identifier>
<summary>
</summary>
<directivesynopsis>
<name>UserDir</name>
<description>Sets the directory from which to serve files when requests
for a particular user are received, denoted by requests containing
<em>~username</em>, such as
<em>http://server.example.com/~bob/</em></description>
<syntax>UserDir <em>directory-filename</em></syntax>
<default>UserDir public_html</default>
<contextlist><context>server config</context> <context>virtual
host</context></contextlist>
<compatibility>All forms except the <code>UserDir public_html</code>
form are only available in Apache 1.1 or above. Use of the
<code>enabled</code> keyword, or <code>disabled</code> with a
list of usernames, is only available in Apache 1.3 and
above.</compatibility>
<usage>
<p>The <directive>UserDir</directive> directive sets the real
directory in a user's home directory to use when a request for a
document for a user is received. <em>Directory-filename</em> is
one of the following:</p>
<ul>
<li>The name of a directory or a pattern such as those shown
below.</li>
<li>The keyword <code>disabled</code>. This turns off
<em>all</em> username-to-directory translations except those
explicitly named with the <code>enabled</code> keyword (see
below).</li>
<li>The keyword <code>disabled</code> followed by a
space-delimited list of usernames. Usernames that appear in
such a list will <em>never</em> have directory translation
performed, even if they appear in an <code>enabled</code>
clause.</li>
<li>The keyword <code>enabled</code> 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
<code>disabled</code> clause.</li>
</ul>
<p>If neither the <code>enabled</code> nor the
<code>disabled</code> keywords appear in the
<code>Userdir</code> directive, the argument is treated as a
filename pattern, and is used to turn the name into a directory
specification. A request for
<code>http://www.foo.com/~bob/one/two.html</code> will be
translated to:</p>
<table>
<tr><th>UserDir directive used</th>
<th>Translated path</th></tr>
<tr><td>UserDir public_html</td><td>~bob/public_html/one/two.html</td></tr>
<tr><td>UserDir /usr/web</td><td>/usr/web/bob/one/two.html</td></tr>
<tr><td>UserDir /home/*/www</td><td>/home/bob/www/one/two.html</td></tr>
</table>
<p>The following directives will send redirects to the client:</p>
<table>
<tr><th>UserDir directive used</th>
<th>Translated path</th></tr>
<tr><td>UserDir http://www.foo.com/users</td><td>http://www.foo.com/users/bob/one/two.html</td></tr>
<tr><td>UserDir
http://www.foo.com/*/usr</td><td>http://www.foo.com/bob/usr/one/two.html</td></tr>
<tr><td>UserDir
http://www.foo.com/~*/</td><td>http://www.foo.com/~bob/one/two.html</td></tr>
</table>
<note>
<strong>Be careful when using this directive; for instance,
<code>"UserDir ./"</code> would map
<code>"/~root"</code> to <code>"/"</code> - which is probably
undesirable. If you are running Apache 1.3 or above, it is
strongly recommended that your configuration include a
"<code>UserDir disabled root</code>" declaration.
See also the <directive module="core">Directory</directive>
directive and the <a href="../misc/security_tips.html">Security
Tips</a> page for more information.</strong>
</note>
<p>Additional examples:</p>
<p>To allow a few users to have <code>UserDir</code> directories, but
not anyone else, use the following:</p>
<example>
UserDir disabled<br />
UserDir enabled user1 user2 user3
</example>
<p>To allow most users to have <code>UserDir</code> directories, but
deny this to a few, use the following:</p>
<example>
UserDir enabled<br />
UserDir disabled user4 user5 user6
</example>
</usage>
</directivesynopsis>
</modulesynopsis>
|