+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Authentication</title>
- <link rev="made" href="mailto:rbowen@rcbowen.com" />
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="center">Authentication</h1>
- <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->
-
-
- <ul>
- <li><a href="#introduction">Introduction</a></li>
-
- <li><a href="#theprerequisites">The prerequisites</a></li>
-
- <li><a href="#gettingitworking">Getting it working</a></li>
-
- <li><a href="#lettingmorethanonepersonin">Letting more
- than one person in</a></li>
-
- <li><a href="#possibleproblems">Possible problems</a></li>
-
- <li><a href="#whatotherneatstuffcanido">What other neat
- stuff can I do?</a></li>
-
- <li><a href="#moreinformation">More information</a></li>
- </ul>
- <!-- INDEX END -->
- <hr />
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="../mod/mod_auth.html">mod_auth</a><br />
- <a href="../mod/mod_access.html">mod_access</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a href="../mod/mod_access.html#allow">Allow</a><br />
- <a
- href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a><br />
- <a href="../mod/core.html#authname">AuthName</a><br />
- <a href="../mod/core.html#authtype">AuthType</a><br />
- <a
- href="../mod/mod_auth.html#authuserfile">AuthUserFile</a><br />
- <a href="../mod/mod_access.html#deny">Deny</a><br />
- <a href="../mod/core.html#options">Options</a><br />
- <a href="../mod/core.html#require">Require</a><br />
- </td>
- </tr>
- </table>
-
- <h1><a id="authentication"
- name="authentication">Authentication</a></h1>
-
- <p>Authentication is any process by which you verify that
- someone is who they claim they are. Authorization is any
- process by which someone is allowed to be where they want to
- go, or to have information that they want to have.</p>
-
- <h2><a id="introduction"
- name="introduction">Introduction</a></h2>
-
- <p>If you have information on your web site that is sensitive
- or intended for only a small group of people, the techniques in
- this article will help you make sure that the people that see
- those pages are the people that you wanted to see them.</p>
-
- <p>This article covers the "standard" way of protecting parts
- of your web site that most of you are going to use.</p>
-
- <h2><a id="theprerequisites" name="theprerequisites">The
- prerequisites</a></h2>
-
- <p>The directives discussed in this article will need to go
- either in your main server configuration file (typically in a
- <Directory> section), or in per-directory configuration
- files (<code>.htaccess</code> files).</p>
-
- <p>If you plan to use <code>.htaccess</code> files, you will
- need to have a server configuration that permits putting
- authentication directives in these files. This is done with the
- <code><a
- href="../mod/core.html#allowoverride">AllowOverride</a></code>
- directive, which specifies which directives, if any, may be put
- in per-directory configuration files.</p>
-
- <p>Since we're talking here about authentication, you will need
- an <code>AllowOverride</code> directive like the following:</p>
-<pre>
- AllowOverride AuthConfig
-</pre>
-
- <p>Or, if you are just going to put the directives directly in
- your main server configuration file, you will of course need to
- have write permission to that file.</p>
-
- <p>And you'll need to know a little bit about the directory
- structure of your server, in order to know where some files are
- kept. This should not be terribly difficult, and I'll try to
- make this clear when we come to that point.</p>
-
- <h2><a id="gettingitworking"
- name="gettingitworking">Getting it working</a></h2>
-
- <p>Here's the basics of password protecting a directory on your
- server.</p>
-
- <p>You'll need to create a password file. This file should be
- placed somewhere not accessible from the web. This is so that
- folks cannot download the password file. For example, if your
- documents are served out of
- <code>/usr/local/apache/htdocs</code> you might want to put the
- password file(s) in <code>/usr/local/apache/passwd</code>.</p>
-
- <p>To create the file, use the <a
- href="../programs/htpasswd.html">htpasswd</a> utility that came
- with Apache. This be located in the <code>bin</code> directory
- of wherever you installed Apache. To create the file, type:</p>
-<pre>
- htpasswd -c /usr/local/apache/passwd/password rbowen
-</pre>
-
- <p><code>htpasswd</code> will ask you for the password, and
- then ask you to type it again to confirm it:</p>
-<pre>
- # htpasswd -c /usr/local/apache/passwd/passwords rbowen
- New password: mypassword
- Re-type new password: mypassword
- Adding password for user rbowen
-</pre>
-
- <p>If <code>htpasswd</code> is not in your path, of course
- you'll have to type the full path to the file to get it to run.
- On my server, it's located at
- <code>/usr/local/apache/bin/htpasswd</code></p>
-
- <p>Next, you'll need to configure the server to request a
- password and tell the server which users are allowed access.
- You can do this either by editing the <code>httpd.conf</code>
- file or using an <code>.htaccess</code> file. For example, if
- you wish to protect the directory
- <code>/usr/local/apache/htdocs/secret</code>, you can use the
- following directives, either placed in the file
- <code>/usr/local/apache/htdocs/secret/.htaccess</code>, or
- placed in httpd.conf inside a <Directory
- /usr/local/apache/apache/htdocs/secret> section.</p>
-<pre>
- AuthType Basic
- AuthName "Restricted Files"
- AuthUserFile /usr/local/apache/passwd/passwords
- require user rbowen
-</pre>
-
- <p>Let's examine each of those directives individually. The <a
- href="../mod/core.html#authtype">AuthType</a> directive selects
- that method that is used to authenticate the user. The most
- common method is <code>Basic</code>, and this is the method
- implemented by <a href="../mod/mod_auth.html">mod_auth</a>. It
- is important to be aware, however, that Basic authentication
- sends the password from the client to the browser unencrypted.
- This method should therefore not be used for highly sensitive
- data. Apache supports one other authentication method:
- <code>AuthType Digest</code>. This method is implemented by <a
- href="../mod/mod_auth_digest.html">mod_auth_digest</a> and is
- much more secure. Only the most recent versions of clients are
- known to support Digest authentication.</p>
-
- <p>The <a href="../mod/core.html#authname">AuthName</a>
- directive sets the <em>Realm</em> to be used in the
- authentication. The realm serves two major functions. First,
- the client often presents this information to the user as part
- of the password dialog box. Second, it is used by the client to
- determine what password to send for a given authenticated area.
- So, for example, once a client has authenticated in the
- <code>"Restricted Files"</code> area, it will automatically
- retry the same password for any area on the same server that is
- marked with the <code>"Restricted Files"</code> Realm.
- Therefore, you can prevent a user from being prompted more than
- once for a password by letting multiple restricted areas share
- the same realm. Of course, for security reasons, the client
- will always need to ask again for the password whenever the
- hostname of the server changes.</p>
-
- <p>The <a
- href="../mod/mod_auth.html#authuserfile">AuthUserFile</a>
- directive sets the path to the password file that we just
- created with <code>htpasswd</code>. If you have a large number
- of users, it can be quite slow to search through a plain text
- file to authenticate the user on each request. Apache also has
- the ability to store user information in fast database files.
- The <a href="../mod/mod_auth_dbm.html">mod_auth_dbm</a> module
- provides the <a
- href="../mod/mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>
- directive. These files can be created and
- manipulated with the <a
- href="../programs/dbmmanage.html">dbmmanage</a> program. Many
- other types of authentication options are available from third
- party modules in the <a
- href="http://modules.apache.org/">Apache Modules
- Database</a>.</p>
-
- <p>Finally, the <a href="../mod/core.html#require">require</a>
- directive provides the authorization part of the process by
- setting the user that is allowed to access this region of the
- server. In the next section, we discuss various ways to use the
- <code>require</code> directive.</p>
-
- <h2><a id="lettingmorethanonepersonin"
- name="lettingmorethanonepersonin">Letting more than one
- person in</a></h2>
-
- <p>The directives above only let one person (specifically
- someone with a username of <code>rbowen</code>) into the
- directory. In most cases, you'll want to let more than one
- person in. This is where the <a
- href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a>
- comes in.</p>
-
- <p>If you want to let more than one person in, you'll need to
- create a group file that associates group names with a list of
- users in that group. The format of this file is pretty simple,
- and you can create it with your favorite editor. The contents
- of the file will look like this:</p>
-<pre>
- GroupName: rbowen dpitts sungo rshersey
-</pre>
-
- <p>That's just a list of the members of the group in a long
- line separated by spaces.</p>
-
- <p>To add a user to your already existing password file,
- type:</p>
-<pre>
- htpasswd /usr/local/apache/passwd/password dpitts
-</pre>
-
- <p>You'll get the same response as before, but it will be
- appended to the existing file, rather than creating a new file.
- (It's the <code>-c</code> that makes it create a new password
- file).</p>
-
- <p>Now, you need to modify your <code>.htaccess</code> file to
- look like the following:</p>
-<pre>
- AuthType Basic
- AuthName "By Invitation Only"
- AuthUserFile /usr/local/apache/passwd/passwords
- AuthGroupFile /usr/local/apache/passwd/groups
- require group GroupName
-</pre>
-
- <p>Now, anyone that is listed in the group
- <code>GroupName</code>, and has an entry in the
- <code>password</code> file, will be let in, if they type the
- correct password.</p>
-
- <p>There's another way to let multiple users in that is less
- specific. Rather than creating a group file, you can just use
- the following directive:</p>
-<pre>
- require valid-user
-</pre>
-
- <p>Using that rather than the <code>require user rbowen</code>
- line will allow anyone in that is listed in the password file,
- and who correctly enters their password. You can even emulate
- the group behavior here, by just keeping a separate password
- file for each group. The advantage of this approach is that
- Apache only has to check one file, rather than two. The
- disadvantage is that you have to maintain a bunch of password
- files, and remember to reference th right one in the
- <code>AuthUserFile</code> directive.</p>
-
- <h2><a id="possibleproblems" name="possibleproblems">Possible
- problems</a></h2>
-
- <p>Because of the way that Basic authentication is specified,
- your username and password must be verified every time you
- request a document from the server. This is even if you're
- reloading the same page, and for every image on the page (if
- they come from a protected directory). As you can imagine, this
- slows things down a little. The amount that it slows things
- down is proportional to the size of the password file, because
- it has to open up that file, and go down the list of users
- until it gets to your name. And it has to do this every time a
- page is loaded.</p>
-
- <p>A consequence of this is that there's a practical limit to
- how many users you can put in one password file. This limit
- will vary depending on the performance of your particular
- server machine, but you can expect to see slowdowns once you
- get above a few hundred entries, and may wish to consider a
- different authentication method at that time.</p>
-
- <h2><a id="whatotherneatstuffcanido"
- name="whatotherneatstuffcanido">What other neat stuff can
- I do?</a></h2>
-
- <p>Authentication by username and password is only part of the
- story. Frequently you want to let people in based on something
- other than who they are. Something such as where they are
- coming from.</p>
-
- <p>The <code>allow</code> and <code>deny</code> directives let
- you allow and deny access based on the host name, or host
- address, of the machine requesting a document. The
- <code>order</code> directive goes hand-in-hand with these two,
- and tells Apache in which order to apply the filters.</p>
-
- <p>The usage of these directives is:</p>
-<pre>
- allow from address
-</pre>
-
- <p>where <em>address</em> is an IP address (or a partial IP
- address) or a fully qualified domain name (or a partial domain
- name); you may provide multiple addresses or domain names, if
- desired.</p>
-
- <p>For example, if you have someone spamming your message
- board, and you want to keep them out, you could do the
- following:</p>
-<pre>
- deny from 205.252.46.165
-</pre>
-
- <p>Visitors coming from that address will not be able to see
- the content covered by this directive. If, instead, you have a
- machine name, rather than an IP address, you can use that.</p>
-<pre>
- deny from host.example.com
-</pre>
-
- <p>And, if you'd like to block access from an entire domain,
- you can specify just part of an address or domain name:</p>
-<pre>
- deny from 192.101.205
- deny from cyberthugs.com moreidiots.com
- deny from ke
-</pre>
-
- <p>Using <code>order</code> will let you be sure that you are
- actually restricting things to the group that you want to let
- in, by combining a <code>deny</code> and an <code>allow</code>
- directive:</p>
-<pre>
- order deny,allow
- deny from all
- allow from dev.example.com
-</pre>
-
- <p>Listing just the <code>allow</code> directive would not do
- what you want, because it will let folks from that host in, in
- addition to letting everyone in. What you want is to let
- <em>only</em> those folks in.</p>
-
- <h2><a id="moreinformation" name="moreinformation">More
- information</a></h2>
-
- <p>You should also read the documentation for <code><a
- href="../mod/mod_auth.html">mod_auth</a></code> and <code><a
- href="../mod/mod_access.html">mod_access</a></code> which
- contain some more information about how this all works.</p>
- </body>
-</html>
-
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+
+ <title>\e$BG'>Z\e(B</title>
+ <link rev="made" href="mailto:rbowen@rcbowen.com" />
+ </head>
+ <!-- English revision: 1.7 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="center">\e$BG'>Z\e(B</h1>
+ <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->
+
+
+ <ul>
+ <li><a href="#introduction">\e$B$O$8$a$K\e(B</a></li>
+
+ <li><a href="#theprerequisites">\e$B=`Hw\e(B</a></li>
+
+ <li><a href="#gettingitworking">\e$BF0:n$5$;$k\e(B</a></li>
+
+ <li><a href="#lettingmorethanonepersonin">\e$BJ#?t$N?M$,\e(B
+ \e$BF~$l$k$h$&$K$9$k\e(B</a></li>
+
+ <li><a href="#possibleproblems">\e$B5/$3$j$($kLdBj\e(B</a></li>
+
+ <li><a href="#whatotherneatstuffcanido">
+ \e$B$b$C$H9*$_$K@)8f$G$-$J$$\e(B?</a></li>
+
+ <li><a href="#moreinformation">\e$BDI2C>pJs\e(B</a></li>
+ </ul>
+ <!-- INDEX END -->
+ <hr />
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>\e$B4XO"%b%8%e!<%k\e(B</strong><br />
+ <br />
+ <a href="../mod/mod_auth.html">mod_auth</a><br />
+ <a href="../mod/mod_access.html">mod_access</a><br />
+ </td>
+
+ <td valign="top"><strong>\e$B4XO"%G%#%l%/%F%#%V\e(B</strong><br />
+ <br />
+ <a href="../mod/mod_access.html#allow">Allow</a><br />
+ <a
+ href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a><br />
+ <a href="../mod/core.html#authname">AuthName</a><br />
+ <a href="../mod/core.html#authtype">AuthType</a><br />
+ <a
+ href="../mod/mod_auth.html#authuserfile">AuthUserFile</a><br />
+ <a href="../mod/mod_access.html#deny">Deny</a><br />
+ <a href="../mod/core.html#options">Options</a><br />
+ <a href="../mod/core.html#require">Require</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <h1><a id="authentication"
+ name="authentication">\e$BG'>Z\e(B</a></h1>
+
+ <p>\e$B!VG'>Z!W$H$O!"C/$+$,<+J,$OC/$G$"$k$+$r<gD%$7$?>l9g$K!"\e(B
+ \e$B$=$l$r3NG'$9$k$?$a$NA4$F$N2aDx$r;X$7$^$9!#!V>5G'!W$H$O!"\e(B
+ \e$BC/$+$,9T$-$?$$>l=j$K9T$1$k$h$&$K!"$"$k$$$OM_$7$$>pJs$r\e(B
+ \e$BF@$k$3$H$,$G$-$k$h$&$K$9$k$?$a$NA4$F$N2aDx$r;X$7$^$9!#\e(B</p>
+
+ <h2><a id="introduction"
+ name="introduction">\e$B$O$8$a$K\e(B</a></h2>
+
+ <p>\e$B$b$75!L)$N>pJs$d!"$4$/$4$/>/?t%0%k!<%W$N?M8~$1$N>pJs$r\e(B
+ \e$B%&%'%V%5%$%H$KCV$/$N$G$"$l$P!"$3$NJ8=q$K=q$+$l$F$$$k\e(B
+ \e$B%F%/%K%C%/$r;H$&$3$H$K$h$C$F!"$=$N%Z!<%8$r8+$F$$$k?M$?$A$,\e(B
+ \e$BK>$_$N?M$?$A$G$"$k$3$H$r3N<B$K$G$-$k$G$7$g$&!#\e(B</p>
+
+ <p>\e$B$3$NJ8=q$G$O!"B?$/$N?M$,:NMQ$9$k$G$"$m$&!"\e(B
+ \e$B%&%'%V%5%$%H$N0lItJ,$rJ]8n$9$k!V0lHLE*$J!W\e(B
+ \e$BJ}K!$K$D$$$F%+%P!<$7$^$9!#\e(B</p>
+
+ <h2><a id="theprerequisites" name="theprerequisites">
+ \e$B=`Hw\e(B</a></h2>
+
+ <p>\e$B$3$NJ8=q$G<h$j07$o$l$k%G%#%l%/%F%#%V$O!"\e(B
+ \e$B%a%$%s%5!<%P@_Dj%U%!%$%k\e(B (\e$BIaDL$O\e(B <Directory>
+ \e$B%;%/%7%g%sCf\e(B) \e$B$+!"$"$k$$$O%G%#%l%/%H%jKh$N@_Dj%U%!%$%k\e(B
+ (<code>.htaccess</code> \e$B%U%!%$%k\e(B) \e$B$+$GMQ$$$^$9!#\e(B</p>
+
+ <p><code>.htaccess</code> \e$B%U%!%$%k$rMQ$$$k$N$G$"$l$P!"\e(B
+ \e$B$3$l$i$N%U%!%$%k$KG'>ZMQ$N%G%#%l%/%F%#%V$rCV$1$k$h$&$K\e(B
+ \e$B%5!<%P$N@_Dj$r$7$J$$$H$$$1$J$$$G$7$g$&!#$3$l$O\e(B
+ <code><a
+ href="../mod/core.html#allowoverride">AllowOverride</a></code>
+ \e$B%G%#%l%/%F%#%V$G2DG=$K$J$j$^$9!#$3$N%G%#%l%/%F%#%V$O!"\e(B
+ \e$B%G%#%l%/%H%jKh$N@_Dj%U%!%$%kCf$KCV$/$3$H$N$G$-$k\e(B
+ \e$B%G%#%l%/%F%#%V$r!"$b$7$"$l$P!";XDj$7$^$9!#\e(B</p>
+
+ <p>\e$BG'>Z$K$D$$$FOC$r?J$a$F$$$k$N$G!"<!$N$h$&$J\e(B
+ <code>AllowOverride</code>
+ \e$B%G%#%l%/%F%#%V$,I,MW$K$J$k$G$7$g$&\e(B:</p>
+<pre>
+ AllowOverride AuthConfig
+</pre>
+
+ <p>\e$B$=$&$G$J$/!"%a%$%s%5!<%P@_Dj%U%!%$%k$NCf$K%G%#%l%/%F%#%V$r\e(B
+ \e$BD>@\CV$3$&$H$$$&$N$G$"$l$P!"EvA3$J$,$i$=$N%U%!%$%k$X$N=q$-9~$_\e(B
+ \e$B8"8B$r;}$C$F$$$J$1$l$P$J$i$J$$$G$7$g$&!#\e(B</p>
+
+ <p>\e$B$=$N>e!"$I$N%U%!%$%k$,$I$3$KJ]B8$5$l$F$$$k$+CN$k$?$a$K!"\e(B
+ \e$B%5!<%P$N%G%#%l%/%H%j9=B$$K$D$$$F>/$7CN$C$F$*$/\e(B
+ \e$BI,MW$,$"$k$G$7$g$&!#\e(B
+ \e$B$3$l$O$=$s$J$KFq$7$/$J$$$O$:$G!"\e(B
+ \e$B%G%#%l%/%H%j9=B$$,I,MW$J>lLL$G$O$=$l$,L@$i$+$K$J$k$h$&$K$7$F$$$^$9!#\e(B</p>
+
+ <h2><a id="gettingitworking"
+ name="gettingitworking">\e$BF0:n$5$;$k\e(B</a></h2>
+
+ <p>\e$B$G$O!"%5!<%P>e$N$"$k%G%#%l%/%H%j$r%Q%9%o!<%I$GJ]8n$9$k\e(B
+ \e$B4pK\$r<($7$^$9!#\e(B</p>
+
+ <p>\e$B%Q%9%o!<%I%U%!%$%k$r:n$kI,MW$,$"$j$^$9!#\e(B
+ \e$B$3$N%U%!%$%k$O!"%&%'%V$+$i%"%/%;%9$G$-$k>l=j$K\e(B
+ \e$BCV$/$Y$-$G$O$"$j$^$;$s!#$3$l$O!"B>$N?M$,%Q%9%o!<%I%U%!%$%k$r\e(B
+ \e$B%@%&%s%m!<%I$G$-$J$$$h$&$K$9$k$?$a$G$9!#Nc$($P!"\e(B
+ <code>/usr/local/apache/htdocs</code> \e$B$G%I%-%e%a%s%H$r\e(B
+ \e$BDs6!$7$F$$$k$N$G$"$l$P!"%Q%9%o!<%I%U%!%$%k$O\e(B
+ <code>/usr/local/apache/passwd</code>
+ \e$B$J$I$KCV$$$?J}$,NI$$$G$7$g$&!#\e(B</p>
+
+ <p>\e$B%U%!%$%k$r:n$k$?$a$K$O!"\e(BApache \e$BIUB0$N\e(B <a
+ href="../programs/htpasswd.html">htpasswd</a>
+ \e$B$r;H$$$^$9!#$3$l$O\e(B Apache \e$B$r$I$3$K%$%s%9%H!<%k$7$h$&$H$b!"\e(B
+ \e$B%$%s%9%H!<%k%G%#%l%/%H%j$N\e(B <code>bin</code>
+ \e$B%G%#%l%/%H%j$KCV$+$l$^$9!#%U%!%$%k$r:n$k$K$O!"<!$N$h$&$K\e(B
+ \e$B%?%$%W$7$F$/$@$5$$\e(B:</p>
+<pre>
+ htpasswd -c /usr/local/apache/passwd/password rbowen
+</pre>
+
+ <p><code>htpasswd</code> \e$B$O!"%Q%9%o!<%I$rMW5a$7!"$=$N8e\e(B
+ \e$B3NG'$N$?$a$K$b$&0lEYF~NO$9$k$h$&$KMW5a$7$F$-$^$9!#\e(B</p>
+<pre>
+ # htpasswd -c /usr/local/apache/passwd/passwords rbowen
+ New password: mypassword
+ Re-type new password: mypassword
+ Adding password for user rbowen
+</pre>
+
+ <p>\e$B$b$7\e(B <code>htpasswd</code> \e$B$,%Q%9$NCf$KF~$C$F$$$J$$>l9g$O!"\e(B
+ \e$B$b$A$m$s!"<B9T$9$k$?$a$K%W%m%0%i%`$^$G$N%U%k%Q%9$r\e(B
+ \e$B%?%$%W$9$kI,MW$,$"$j$^$9!#;d$N%5!<%P$G$"$l$P!"\e(B
+ <code>/usr/local/apache/bin/htpasswd</code>
+ \e$B$K%W%m%0%i%`$,CV$+$l$F$$$^$9!#\e(B</p>
+
+ <p>\e$B<!$K!"%5!<%P$,%Q%9%o!<%I$rMW5a$9$k$h$&$K@_Dj$7$F!"\e(B
+ \e$B$I$N%f!<%6$,%"%/%;%9$r5v$5$l$F$$$k$+$r%5!<%P$KCN$i$;$J$1$l$P\e(B
+ \e$B$J$j$^$;$s!#\e(B <code>httpd.conf</code> \e$B$rJT=8$9$k$+\e(B
+ <code>.htaccess</code> \e$B%U%!%$%k$r;HMQ$9$k$+$G$3$l$r\e(B
+ \e$B9T$$$^$9!#Nc$($P!"%G%#%l%/%H%j\e(B
+ <code>/usr/local/apache/htdocs/secret</code>
+ \e$B$rJ]8n$7$?$$>l9g$O!"\e(B
+ <code>/usr/local/apache/htdocs/secret/.htaccess</code>
+ \e$B$+\e(B httpd.conf \e$BCf$N\e(B <Directory
+ /usr/local/apache/apache/htdocs/secret> \e$B%;%/%7%g%s$K\e(B
+ \e$BG[CV$7$?!"<!$N%G%#%l%/%F%#%V$r;H$&$3$H$,$G$-$^$9!#\e(B</p>
+<pre>
+ AuthType Basic
+ AuthName "Restricted Files"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ require user rbowen
+</pre>
+
+ <p>\e$B$3$l$i8D!9$N%G%#%l%/%F%#%V$K$D$$$F8+$F$_$^$7$g$&!#\e(B
+ <a href="../mod/core.html#authtype">AuthType</a>
+ \e$B%G%#%l%/%F%#%V$O$I$&$$$&J}K!$G%f!<%6$NG'>Z$r9T$&$+$r\e(B
+ \e$BA*Br$7$^$9!#:G$b0lHLE*$JJ}K!$O\e(B <code>Basic</code>
+ \e$B$G!"$3$l$O\e(B <a href="../mod/mod_auth.html">mod_auth</a>
+ \e$B$K$*$$$F<BAu$5$l$F$$$^$9!#$7$+$7$J$,$i!"\e(B
+ \e$B$3$l$O5$$rIU$1$k$Y$-=EMW$J$3$H$J$N$G$9$,!"\e(B
+ Basic \e$BG'>Z$O%/%i%$%"%s%H$+$i%V%i%&%6$X!"\e(B
+ \e$B%Q%9%o!<%I$r0E9f2=$;$:$KAw$j$^$9!#$G$9$+$i!"\e(B
+ \e$B$3$NJ}K!$OFC$K5!L)@-$N9b$$%G!<%?$KBP$7$F$OMQ$$$k$Y$-$G$O\e(B
+ \e$B$"$j$^$;$s!#\e(B Apache \e$B$G$O$b$&0l$DJL$NG'>ZJ}K!\e(B:
+ <code>AuthType Digest</code> \e$B$r%5%]!<%H$7$F$$$^$9!#\e(B
+ \e$B$3$NJ}K!$O\e(B <a
+ href="../mod/mod_auth_digest.html">mod_auth_digest</a>
+ \e$B$G<BAu$5$l$F$$$F!"$b$C$H0BA4$G$9!#\e(B
+ \e$B$4$/:G6a$N%/%i%$%"%s%H$N$_$,\e(B Digest \e$BG'>Z$r%5%]!<%H$7$F$$$k\e(B
+ \e$B$3$H$,CN$i$l$F$$$^$9!#\e(B</p>
+
+ <p><a href="../mod/core.html#authname">AuthName</a>
+ \e$B%G%#%l%/%F%#%V$G$O!"G'>Z$K;H$&\e(B <em>Realm</em> (\e$BLuCm\e(B: \e$BNN0h\e(B)
+ \e$B$r@_Dj$7$^$9!#\e(BRealm \e$B$OBg$-$/J,$1$FFs$D$N5!G=$rDs6!$7$^$9!#\e(B
+ \e$B0l$DL\$O!"%/%i%$%"%s%H$,%Q%9%o!<%I%@%$%"%m%0%\%C%/%9$N\e(B
+ \e$B0lIt$H$7$F%f!<%6$K$3$N>pJs$r$h$/Ds<($9$k!"$H$$$&$b$N$G$9!#\e(B
+ \e$BFs$DL\$K$O!"%/%i%$%"%s%H$,M?$($i$l$?G'>ZNN0h$KBP$7$F$I$N%Q%9%o!<%I$r\e(B
+ \e$BAw?.$9$l$PNI$$$N$+$r7hDj$9$k$?$a$K;H$o$l$k!"$H$$$&5!G=$,$"$j$^$9!#\e(B
+ \e$B$G$9$+$iNc$($P!"\e(B<code>"Restricted Files"</code> \e$BNN0hCf$G\e(B
+ \e$B0lEYG'>Z$5$l$l$P!"F10l%5!<%P>e$G\e(B <code>"Restricted Files"</code>
+ realm \e$B$H$7$F%^!<%/$5$l$?$I$s$JNN0h$G$b!"%/%i%$%"%s%H$O\e(B
+ \e$B<+F0E*$KF1$8%Q%9%o!<%I$r;H$*$&$H;n$_$^$9!#\e(B
+ \e$B$G$9$+$i!"J#?t$N@)8BNN0h$KF1$8\e(B realm \e$B$r6&M-$5$;$F!"\e(B
+ \e$B%f!<%6$,%Q%9%o!<%I$r2?EY$bMW5a$5$l$k;vBV$r\e(B
+ \e$BKI$0$3$H$,$G$-$^$9!#$b$A$m$s!"%;%-%e%j%F%#>e$NM}M3$+$i!"\e(B
+ \e$B%5!<%P$N%[%9%HL>$,JQ$o$l$P$$$D$G$bI,$:!"\e(B
+ \e$B%/%i%$%"%s%H$O:F$S%Q%9%o!<%I$r?R$M$kI,MW$,$"$j$^$9!#\e(B</p>
+
+ <p><a href="../mod/mod_auth.html#authuserfile">AuthUserFile</a>
+ \e$B%G%#%l%/%F%#%V$O\e(B <code>htpasswd</code> \e$B$G:n$C$?\e(B
+ \e$B%Q%9%o!<%I%U%!%$%k$X$N%Q%9$r@_Dj$7$^$9!#\e(B
+ \e$B%f!<%6?t$,B?$$>l9g$O!"%j%/%(%9%HKh$N%f!<%6$NG'>Z$N$?$a$N\e(B
+ \e$B%W%l!<%s%F%-%9%H$NC5:w$,Hs>o$KCY$/$J$k$3$H$,$"$j$^$9!#\e(B
+ Apache \e$B$G$O%f!<%6>pJs$r9bB.$J%G!<%?%Y!<%9%U%!%$%k$K\e(B
+ \e$BJ]4I$9$k$3$H$b$G$-$^$9!#\e(B
+ <a href="../mod/mod_auth_dbm.html">mod_auth_dbm</a>
+ \e$B%b%8%e!<%k$,\e(B<a
+ href="../mod/mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>
+ \e$B%G%#%l%/%F%#%V$rDs6!$7$^$9!#$3$l$i$N%U%!%$%k$O\e(B <a
+ href="../programs/dbmmanage.html">dbmmanage</a>
+ \e$B%W%m%0%i%`$G:n@.$7$?$jA`:n$7$?$j$G$-$^$9!#\e(B
+ <a href="http://modules.apache.org/">Apache
+ \e$B%b%8%e!<%k%G!<%?%Y!<%9\e(B</a>\e$BCf$K$"$k%5!<%I%Q!<%F%#!<@=$N\e(B
+ \e$B%b%8%e!<%k$G!"$=$NB>B?$/$N%?%$%W$NG'>Z%*%W%7%g%s$,\e(B
+ \e$BMxMQ2DG=$G$9!#\e(B</p>
+
+ <p>\e$B:G8e$K!"\e(B<a href="../mod/core.html#require">require</a>
+ \e$B%G%#%l%/%F%#%V$,!"%5!<%P$N$3$NNN0h$K%"%/%;%9$G$-$k%f!<%6$r\e(B
+ \e$B;XDj$9$k$3$H$K$h$C$F!"%W%m%;%9$N>5G'ItJ,$rDs6!$7$^$9!#\e(B
+ \e$B<!$N%;%/%7%g%s$G$O!"\e(B<code>require</code> \e$B%G%#%l%/%F%#%V$N\e(B
+ \e$BMM!9$JMQK!$K$D$$$F=R$Y$^$9!#\e(B</p>
+
+ <h2><a id="lettingmorethanonepersonin"
+ name="lettingmorethanonepersonin">
+ \e$BJ#?t$N?M$,F~$l$k$h$&$K$9$k\e(B</a></h2>
+
+ <p>\e$B>e5-$N%G%#%l%/%F%#%V$O!"$?$@0l?M\e(B (\e$B6qBNE*$K$O%f!<%6L>\e(B
+ <code>rbowen</code> \e$B$NC/$+\e(B) \e$B$,%G%#%l%/%H%j$K\e(B
+ \e$BF~$l$k$h$&$K$7$^$9!#B?$/$N>l9g$O!"J#?t$N?M$,\e(B
+ \e$BF~$l$k$h$&$K$7$?$$$G$7$g$&!#$3$3$G\e(B<a
+ href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a>
+ \e$B$NEP>l$G$9!#\e(B</p>
+
+ <p>\e$B$b$7J#?t$N?M$,F~$l$k$h$&$K$7$?$$$N$G$"$l$P!"\e(B
+ \e$B%0%k!<%W$KB0$9$k%f!<%6$N0lMw$NF~$C$F$$$k!"%0%k!<%WL>$N$D$$$?\e(B
+ \e$B%0%k!<%W%U%!%$%k$r:n$kI,MW$,$"$j$^$9!#$3$N%U%!%$%k$N\e(B
+ \e$B=q<0$O$-$o$a$FC1=c$G!"$*9%$_$N%(%G%#%?$G@8@.$G$-$^$9!#\e(B
+ \e$B%U%!%$%k$NCf?H$O<!$N$h$&$J$b$N$G$9\e(B:</p>
+<pre>
+ GroupName: rbowen dpitts sungo rshersey
+</pre>
+
+ <p>\e$B0l9T$K%9%Z!<%96h@Z$j$G!"%0%k!<%W$K=jB0$9$k%a%s%P!<$N\e(B
+ \e$B0lMw$r$J$i$Y$k$@$1$G$9!#\e(B</p>
+
+ <p>\e$B4{$KB8:_$9$k%Q%9%o!<%I%U%!%$%k$K%f!<%6$r2C$($k>l9g$O!"\e(B
+ \e$B<!$N$h$&$K%?%$%W$7$F$/$@$5$$\e(B:</p>
+<pre>
+ htpasswd /usr/local/apache/passwd/password dpitts
+</pre>
+
+ <p>\e$B0MA3$HF1$81~Ez$,JV$5$l$^$9$,!"?7$7$$%U%!%$%k$r\e(B
+ \e$B:n$k$N$G$O$J$/!"4{$K$"$k%U%!%$%k$KDI2C$5$l$F$$$^$9!#\e(B
+ (\e$B?7$7$$%Q%9%o!<%I%U%!%$%k$r:n$k$K$O\e(B <code>-c</code>
+ \e$B$r;H$$$^$9!#\e(B)</p>
+
+ <p>\e$B$3$3$G<!$N$h$&$K$7$F\e(B <code>.htaccess</code> \e$B%U%!%$%k$r\e(B
+ \e$B=$@5$9$kI,MW$,$"$j$^$9\e(B:</p>
+<pre>
+ AuthType Basic
+ AuthName "By Invitation Only"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ AuthGroupFile /usr/local/apache/passwd/groups
+ require group GroupName
+</pre>
+
+ <p>\e$B$3$l$G!"%0%k!<%W\e(B <code>GroupName</code> \e$B$K%j%9%H$5$l$F$$$F!"\e(B
+ <code>password</code> \e$B%U%!%$%k$K%(%s%H%j$,$"$k?M$O!"\e(B
+ \e$B@5$7$$%Q%9%o!<%I$r%?%$%W$9$l$PF~$k$3$H$,$G$-$k$G$7$g$&!#\e(B</p>
+
+ <p>\e$B$b$C$HFCDj$;$:$KJ#?t$N%f!<%6$,F~$l$k$h$&$K$9$k!"\e(B
+ \e$B$b$&0l$D$NJ}K!$,$"$j$^$9!#%0%k!<%W%U%!%$%k$r:n$k$N$G$O$J$/!"\e(B
+ \e$B<!$N%G%#%l%/%F%#%V$r;H$($P$G$-$^$9!#\e(B</p>
+<pre>
+ require valid-user
+</pre>
+
+ <p><code>require user rbowen</code> \e$B9T$G$J$/!">e5-$r;H$&$H!"\e(B
+ \e$B%Q%9%o!<%I%U%!%$%k$K%j%9%H$5$l$F$$$k?M$G$"$l$PC/$G$b\e(B
+ \e$B5v2D$5$l$^$9!#\e(B
+ \e$BC1$K%Q%9%o!<%I%U%!%$%k$r%0%k!<%WKh$KJ,$1$F$*$/$3$H$G!"\e(B
+ \e$B%0%k!<%W$N$h$&$J?6$kIq$$$r$5$;$k$3$H$b$G$-$^$9!#\e(B
+ \e$B$3$N%"%W%m!<%A$NMxE@$O!"\e(BApache \e$B$OFs$D$G$O$J$/!"\e(B
+ \e$B$?$@0l$D$N%U%!%$%k$@$1$r8!::$9$l$P$h$$$H$$$&E@$G$9!#\e(B
+ \e$B7gE@$O!"$?$/$5$s$N%Q%9%o!<%I%U%!%$%k$r4IM}$7$F!"\e(B
+ \e$B$=$NCf$+$i\e(B <code>AuthUserFile</code> \e$B%G%#%l%/%F%#%V$K@5$7$$%U%!%$%k$X$N\e(B
+ \e$B;2>H$r$5$;$J$1$l$P$J$i$J$$E@$G$9!#\e(B</p>
+
+ <h2><a id="possibleproblems" name="possibleproblems">
+ \e$B5/$3$j$($kLdBj\e(B</a></h2>
+
+ <p>Basic \e$BG'>Z$,;XDj$5$l$F$$$k>l9g$O!"\e(B
+ \e$B%5!<%P$K%I%-%e%a%s%H$r%j%/%(%9%H$9$kEY$K\e(B
+ \e$B%f!<%6L>$H%Q%9%o!<%I$r8!::$7$J$1$l$P$J$j$^$;$s!#\e(B
+ \e$B$3$l$OF1$8%Z!<%8!"%Z!<%8$K$"$kA4$F$N2hA|$r\e(B
+ \e$B%j%m!<%I$9$k>l9g$G$"$C$F$b3:Ev$7$^$9\e(B
+ (\e$B$b$72hA|$bJ]8n$5$l$?%G%#%l%/%H%j$+$iMh$k$N$G$"$l$P\e(B) \e$B!#\e(B
+ \e$BM=A[$5$l$kDL$j!"$3$l$OF0:n$rB?>/CY$/$7$^$9!#\e(B
+ \e$BCY$/$J$kDxEY$O%Q%9%o!<%I%U%!%$%k$NBg$-$5$HHfNc$7$^$9$,!"\e(B
+ \e$B$3$l$O!"%U%!%$%k$r3+$$$F$"$J$?$NL>A0$rH/8+$9$k$^$G\e(B
+ \e$B%f!<%6L>$N%j%9%H$rFI$^$J$1$l$P$J$i$J$$$+$i$G$9!#\e(B
+ \e$B$=$7$F!"%Z!<%8$,%m!<%I$5$l$kEY$K$3$l$r9T$o$J$1$l$P\e(B
+ \e$B$J$j$^$;$s!#\e(B</p>
+
+ <p>\e$B7kO@$H$7$F$O!"0l$D$N%Q%9%o!<%I%U%!%$%k$KCV$/$3$H$N$G$-$k\e(B
+ \e$B%f!<%6?t$K$O<B<AE*$J8B3&$,$"$j$^$9!#\e(B
+ \e$B$3$N8B3&$O%5!<%P%^%7%s$N@-G=$K0MB8$7$FJQ$o$j$^$9$,!"\e(B
+ \e$B?tI4$N%(%s%H%j$r1[$($?$"$?$j$+$iB.EYDc2<$,8+$i$l$k$HM=4|$5$l$F$$$^$9!#\e(B
+ \e$B$=$N;~$OB>$NG'>ZJ}K!$r9MN8$KF~$l$?J}$,NI$$$G$7$g$&!#\e(B</p>
+
+ <h2><a id="whatotherneatstuffcanido"
+ name="whatotherneatstuffcanido">
+ \e$B$b$C$H9*$_$K@)8f$G$-$J$$!)\e(B</a></h2>
+
+ <p>\e$B%f!<%6L>$H%Q%9%o!<%I$K$h$kG'>Z$OG'>Z$N0l$D$NJ}K!$K2a$.$^$;$s!#\e(B
+ \e$B$7$P$7$PC/$G$"$k$+$H$$$&$3$H$H$O0c$&2?$+$K4p$E$$$F!"\e(B
+ \e$BF~$l$k$h$&$K$7$?$/$J$k$3$H$b$"$k$G$7$g$&!#Nc$($P$=$N?M$,$I$3$+$iMh$F$$$k$+\e(B
+ \e$B$H$$$C$?$3$H$G$9!#\e(B</p>
+
+ <p><code>allow</code> \e$B$H\e(B <code>deny</code>
+ \e$B%G%#%l%/%F%#%V$r;H$C$F!"%I%-%e%a%s%H$rMW5a$7$F$-$?%^%7%s$N\e(B
+ \e$B%[%9%HL>$d%[%9%H%"%I%l%9$K4p$E$$$F5v2DIT5v2D$r@)8f$G$-$^$9!#\e(B
+ <code>order</code> \e$B%G%#%l%/%F%#%V$O$3$NFs$D$HO"7H$7$F\e(B
+ \e$BF0:n$7!"\e(BApache \e$B$K$I$N=gHV$G%U%#%k%?$rE,MQ$9$k$+$r\e(B
+ \e$BCN$i$;$^$9!#\e(B</p>
+
+ <p>\e$B$3$l$i$N%G%#%l%/%F%#%V$N;H$$J}$O\e(B:</p>
+<pre>
+ allow from address
+</pre>
+
+ <p>\e$B$3$3$G!"\e(B<em>address</em> \e$B$O\e(B IP \e$B%"%I%l%9\e(B
+ (\e$B$^$?$O\e(B IP \e$B%"%I%l%9$N0lIt\e(B)\e$B!"$"$k$$$O40A4=$>~%I%a%$%sL>\e(B
+ (\e$B$^$?$O%I%a%$%sL>$N0lIt\e(B) \e$B$G$9!#\e(B
+ \e$BI,MW$G$"$l$PJ#?t$N%"%I%l%9$d%I%a%$%sL>$r;XDj$G$-$^$9!#\e(B</p>
+
+ <p>\e$BNc$($P!"$b$7C/$+$,7G<(HD$r967b$7$F$$$F!"\e(B
+ \e$B$=$N?M$rJD$a=P$7$?$$$N$G$"$l$P!"\e(B
+ \e$B<!$N$h$&$K$9$k$3$H$,$G$-$^$9\e(B:</p>
+<pre>
+ deny from 205.252.46.165
+</pre>
+
+ <p>\e$B$3$N%"%I%l%9$+$iMh$k?M$O!"$3$N%G%#%l%/%F%#%V$NHO0OFb$N\e(B
+ \e$B%3%s%F%s%D$r8+$k$3$H$,$G$-$J$$$^$;$s!#$b$7\e(B IP
+ \e$B%"%I%l%9$NBe$o$j$K%^%7%sL>$,$"$l$P!"$=$l$r;H$($^$9!#\e(B</p>
+<pre>
+ deny from host.example.com
+</pre>
+
+ <p>\e$B%I%a%$%sA4BN$+$i$N%"%/%;%9$rKI$.$?$1$l$P!"\e(B
+ \e$BC1$K%"%I%l%9$d%I%a%$%sL>$N0lIt$r;XDj$9$k$3$H$,$G$-$^$9\e(B:</p>
+<pre>
+ deny from 192.101.205
+ deny from cyberthugs.com moreidiots.com
+ deny from ke
+</pre>
+
+ <p><code>order</code> \e$B$r;H$&$3$H$G!"\e(B
+ <code>deny</code> \e$B$H\e(B <code>allow</code> \e$B$NAH$_9g$o$;$G\e(B
+ \e$BF~$C$F$bNI$$%0%k!<%W$,K\Ev$K3N<B$K8BDj$G$-$F$$$k$h$&$K$G$-$^$9\e(B:</p>
+<pre>
+ order deny,allow
+ deny from all
+ allow from dev.example.com
+</pre>
+
+ <p><code>allow</code> \e$B%G%#%l%/%F%#%V$rC1=c$KNs5s$9$k$N$G$O\e(B
+ \e$BK>$_$NF0:n$r$7$J$$$G$7$g$&!#\e(B
+ \e$B$J$<$J$i!"A4$F$N?M$,F~$l$k$H$$$&$3$H$K2C$($F!"\e(B
+ \e$B;XDj$7$?%[%9%H$+$i$N?M$,F~$l$k$h$&$K$9$k$+$i$G$9!#\e(B
+ \e$B$d$j$?$$$3$H$O!";XDj$7$??M$?$A\e(B<em>\e$B$@$1\e(B</em>\e$B$,F~$l$k$h$&$K\e(B
+ \e$B$9$k$3$H$G$9!#\e(B</p>
+
+ <h2><a id="moreinformation" name="moreinformation">
+ \e$BDI2C>pJs\e(B</a></h2>
+
+ <p>\e$B$3$l$iA4$F$,$I$N$h$&$KF0:n$9$k$+$K$D$$$F\e(B
+ \e$B$b$C$HB?$/$N>pJs$,=q$+$l$F$$$k\e(B <code><a
+ href="../mod/mod_auth.html">mod_auth</a></code> \e$B$H\e(B <code><a
+ href="../mod/mod_access.html">mod_access</a></code>
+ \e$B$NJ8=q$bFI$`$H$h$$$G$7$g$&!#\e(B</p>
+ </body>
+</html>
+
--- /dev/null
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
+<!-- English revision: 1.7 -->
+<modulesynopsis>
+
+<name>mod_userdir</name>
+<description>\e$B%f!<%6@lMQ$N%G%#%l%/%H%j$rDs6!$7$^$9\e(B
+ </description>
+<status>Base</status>
+<sourcefile>mod_userdir.c</sourcefile>
+<identifier>userdir_module</identifier>
+
+<summary>
+\e$B$3$N%b%8%e!<%k$O!"\e(B
+<code>http://example.com/~user/</code>
+\e$B9=J8$r;H$C$F%f!<%6@lMQ%G%#%l%/%H%j$K%"%/%;%9$G$-$k$h$&$K$7$^$9!#\e(B
+</summary>
+
+<seealso><a href="../urlmapping.html">URL \e$B$+$i\e(B
+\e$B%U%!%$%k%7%9%F%`$X$N%^%C%T%s%0\e(B</a></seealso>
+
+<directivesynopsis>
+
+<name>UserDir</name>
+<description>\e$B%f!<%6@lMQ%G%#%l%/%H%j$N0LCV\e(B</description>
+<syntax>UserDir <em>directory-filename</em></syntax>
+<default>UserDir public_html</default>
+<contextlist><context>\e$B%5!<%P@_Dj%U%!%$%k\e(B</context>
+<context>\e$B%P!<%A%c%k%[%9%H\e(B</context></contextlist>
+
+<usage>
+
+ <p><directive>UserDir</directive> \e$B%G%#%l%/%F%#%V$O!"\e(B
+ \e$B%f!<%6$N%I%-%e%a%s%H$X$N%j%/%(%9%H$r<u$1$?;~$K;H$&\e(B
+ \e$B%f!<%6$N%[!<%`%G%#%l%/%H%jCf$N!"<B:]$N%G%#%l%/%H%j$r\e(B
+ \e$B@_Dj$7$^$9!#\e(B
+ <em>directory-filename</em> \e$B$K$O<!$N$I$l$+$r;XDj$7$^$9\e(B:</p>
+
+ <ul>
+ <li>\e$B%G%#%l%/%H%jL>$+2<$K<($9$h$&$J%Q%?!<%s!#\e(B</li>
+
+ <li><code>disabled</code> \e$B%-!<%o!<%I!#\e(B
+ <code>enabled</code> \e$B%-!<%o!<%I\e(B (\e$B2<5-;2>H\e(B) \e$B$GL@<(E*$K\e(B
+ \e$B;XDj$5$l$?%f!<%60J30$N\e(B
+ <em>\e$BA4$F$N\e(B</em>\e$B%f!<%6L>\e(B-\e$B%G%#%l%/%H%jJQ49$r\e(B
+ \e$B$7$J$$$h$&$K$7$^$9!#\e(B</li>
+
+ <li><code>disabled</code> \e$B%-!<%o!<%I$H!"%9%Z!<%96h@Z$j$N%f!<%6L>%j%9%H!#\e(B
+ \e$B$3$N%j%9%HCf$K4^$^$l$k%f!<%6L>$KBP$7$F$O!"$?$H$(\e(B
+ <code>enabled</code> \e$B@a$K$"$C$?$H$7$F$b!"\e(B
+ <em>\e$B7h$7$F\e(B</em>\e$B%G%#%l%/%H%jJQ49$O9T$o$l$^$;$s!#\e(B</li>
+
+ <li><code>enebled</code> \e$B%-!<%o!<%I$H%9%Z!<%96h@Z$j$N%f!<%6L>%j%9%H!#\e(B
+ \e$BA4BN$G$OJQ49$,L58z$K$J$C$F$$$?$H$$$?$H$7$F$b!"\e(B
+ \e$B$3$l$i$N%f!<%6L>$K$O%G%#%l%/%H%jJQ49$,9T$o$l$^$9!#\e(B
+ \e$B$?$@$7!"\e(B<code>disabled</code> \e$B@a$K$b$"$l$PJQ49$O$5$l$^$;$s!#\e(B
+ </li>
+ </ul>
+
+ <p>\e$B$b$7\e(B <code>enabled</code> \e$B$b\e(B <code>disabled</code>
+ \e$B%-!<%o!<%I$b\e(B <code>UserDir</code> \e$B$K8=$o$l$F$$$J$1$l$P!"\e(B
+ \e$B0z?t$O%U%!%$%kL>%Q%?!<%s$H$7$F07$o$l!"\e(B
+ \e$BL>A0$+$i%G%#%l%/%H%j$X$NJQ49$N;XDj$r9T$J$&;~$K;H$o$l$^$9!#\e(B
+ <code>http://www.foo.com/~bob/one/two.html</code>
+ \e$B$X$N%j%/%(%9%H$O<!$N$h$&$KJQ49$5$l$^$9\e(B:</p>
+
+<table>
+<tr><th>UserDir \e$B%G%#%l%/%F%#%V\e(B</th>
+<th>\e$BJQ498e$N%Q%9\e(B</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>\e$B<!$N%G%#%l%/%F%#%V$O%/%i%$%"%s%H$KBP$7$F%j%@%$%l%/%H$r\e(B
+ \e$BAw?.$7$^$9\e(B:</p>
+
+<table>
+<tr><th>UserDir \e$B%G%#%l%/%F%#%V\e(B</th>
+<th>\e$BJQ498e$N%Q%9\e(B</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>\e$B$3$N%G%#%l%/%F%#%V$r;H$&$H$-$OCm0U$7$F$/$@$5$$\e(B;
+ "<code>UserDir ./</code>" \e$B$O\e(B
+ "<code>/~root</code>" \e$B$+$i\e(B "<code>/</code>" \e$B$X%^%C%W$7$^$9$,!"\e(B
+ \e$B$3$l$OK>$^$7$$F0:n$G$O$J$$$G$7$g$&!#\e(B
+ "<code>UserDir disabled root</code>" \e$B@k8@$r\e(B
+ \e$B@_Dj$NCf$K4^$a$F$*$/$3$H$r6/$/$*A&$a$7$^$9!#\e(B
+ \e$BDI2C>pJs$K\e(B <directive module="core">Directory</directive>
+ \e$B%G%#%l%/%F%#%V$d\e(B
+ <a href="../misc/security_tips.html">\e$B%;%-%e%j%F%#\e(B
+ Tips</a> \e$B$N%Z!<%8$b$4Mw2<$5$$!#\e(B</strong>
+</note>
+
+<p>\e$BDI2C$NNc\e(B:</p>
+
+<p>\e$B>/?t$N%f!<%6$N$_$,\e(B <code>UserDir</code>
+\e$B%G%#%l%/%H%j$rMxMQ$7!"$=$l0J30$K$OMxMQ$5$;$?$/$J$$>l9g$O\e(B
+\e$B<!$r;H$$$^$7$g$&\e(B:</p>
+
+<example>
+UserDir disabled<br />
+UserDir enabled user1 user2 user3
+</example>
+
+<p>\e$BBgItJ,$N%f!<%6$O\e(B <code>UserDir</code> \e$B%G%#%l%/%H%j$rMxMQ$9$k$1$l$I!"\e(B
+\e$B>/?t$N?M$OIT5v2D$K$7$?$$>l9g$O!"<!$r;H$$$^$7$g$&\e(B:</p>
+
+<example>
+UserDir enabled<br />
+UserDir disabled user4 user5 user6
+</example>
+
+</usage>
+
+</directivesynopsis>
+</modulesynopsis>
+
+
--- /dev/null
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
+<modulesynopsis>
+<!-- English revision: 1.3 -->
+<name>mpm_winnt</name>
+<description>\e$B$3$N%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k$O\e(B Windows NT
+\e$B8~$1$K:GE,2=$5$l$F$$$^$9!#\e(B</description>
+<status>MPM</status>
+<sourcefile>mpm_winnt.c</sourcefile>
+<identifier>mpm_winnt_module</identifier>
+
+<summary>
+ <p>\e$B$3$N%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k\e(B (MPM)
+ \e$B$O\e(B Windows NT \e$B$G$N%G%U%)%k%H$K$J$j$^$9!#\e(B
+ \e$B0l$D$N@)8fMQ%W%m%;%9$rMQ$$!"$3$l$,0l$D$N;R%W%m%;%9$r5/F0$7!"\e(B
+ \e$B$=$7$F;R%W%m%;%9$,%j%/%(%9%H$r<h$j07$&$?$a$K%9%l%C%I$r\e(B
+ \e$B5/F0$7$^$9!#\e(B</p>
+</summary>
+
+<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
+</directivesynopsis>
+<directivesynopsis location="mpm_common"><name>PidFile</name>
+</directivesynopsis>
+<directivesynopsis location="mpm_common"><name>Listen</name>
+</directivesynopsis>
+<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
+</directivesynopsis>
+<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
+</directivesynopsis>
+<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
+</directivesynopsis>
+<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
+</directivesynopsis>
+
+</modulesynopsis>