# mod_userdir モジュール

このモジュールは、ユーザのホームディレクトリにアクセスする機能を提供します

ステータス: Base
ソースファイル: mod_userdir.c
モジュール識別子: userdir_module

## ディレクティブ

- UserDir

## UserDir ディレクティブ

Syntax: UserDir directory-filename
Default: `UserDir public_html`
Context: サーバ設定ファイル、 バーチャルホスト
Status: Base
Module: mod_userdir
Compatibility: `UserDir public_html` といった形式以外は、Apache 1.1 以降でのみ有効です。 `enabled` や `disabled` というキーワードの記述及び、 ユーザ名の列挙に関しては、Apache 1.3 以降でのみ対応しています。

UserDir ディレクティブは、 ユーザのドキュメントに対する要求があった際に使用する、 ユーザのホームディレクトリの中の実際のディレクトリの名前を指定します。 directory-filename には、以下のどれかを指定します。

- ディレクトリ名か、以下に述べる形式のパターン。
- `disabled` というキーワード。
  この設定は、`enabled` キーワード (以下参照) において指定されたユーザ以外、 すべてのユーザ名をディレクトリに変換しないようにします。
- `disabled` というキーワードと、 その後にスペース区切りでユーザ名を列挙。
  指定されたユーザは、`enabled` において記述がされていたとしても、 ディレクトリへの変換がされなくなります。
- `enabled` というキーワードと、スペース区切りでユーザ名を列挙
  指定されたユーザは、変換がされないように設定されていたとしても、 ディレクトリへの変換を行います。 ただし、`disabled` において明記されている場合には、変換がなされません。

`enabled` や `disabled` といったキーワードでない場合には、 ファイル名のパターンとして扱われ、 名前からディレクトリへの変換を指定することができます。 `http://www.foo.com/~bob/one/two.html` への URL の場合の変換について見てみます。

    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

以下のようにディレクティブを設定すると、 クライアントへはリダイレクトが送出されます。

    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

> このディレクティブを利用する際、`"UserDir ./"` といった設定をすると、`"/~root"` は `"/"` にマッピングされることに気をつけてください。 これは非常に望ましくありません。 Apache 1.3 以降を利用しているのであれば、"UserDir disabled root" という記述を設定ファイル中に含めることを強く推奨します。 <Directory> ディレクティブや、 セキュリティに関する覚書 も参照してください。

その他の設定例:

小数のユーザには `UserDir` ディレクトリを利用させるものの、残りのユーザにはさせたくない場合:

    UserDir disabled
    UserDir enabled user1 user2 user3

大部分のユーザには `UserDir` ディレクトリを利用させ、一部のユーザのみ無効にする場合:

    UserDir enabled
    UserDir disabled user4 user5 user6