Apache HTTP サーバ バージョン 2.4

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.4 > モジュール

# Apache モジュール mod_userdir

この日本語訳はすでに古くなっている 可能性があります。 最近更新された内容を見るには英語版をご覧下さい。

説明: | ユーザ専用のディレクトリを提供
ステータス: | Base
モジュール識別子: | userdir_module
ソースファイル: | mod_userdir.c

### 概要

このモジュールは、 `http://example.com/~user/` 構文を使ってユーザ専用ディレクトリにアクセスできるようにします。

### ディレクティブ

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

### 参照

- URL から ファイルシステムへのマッピング
- public_html チュートリアル

## UserDir ディレクティブ

説明: | ユーザ専用ディレクトリの位置
構文: | `UserDir directory-filename [directory-filename] ...`
コンテキスト: | サーバ設定ファイル, バーチャルホスト
ステータス: | Base
モジュール: | mod_userdir

`UserDir` ディレクティブは、 ユーザのドキュメントへのリクエストを受けた時に使う ユーザのホームディレクトリ中の、実際のディレクトリを 設定します。 directory-filename には次のどれかを指定します:

- ディレクトリ名か下に示すようなパターン。
- `disabled` キーワード。 `enabled` キーワード (下記参照) で明示的に 指定されたユーザ以外の 全てのユーザ名-ディレクトリ変換を しないようにします。
- `disabled` キーワードと、スペース区切りのユーザ名リスト。 このリスト中に含まれるユーザ名に対しては、たとえ `enabled` 節にあったとしても、 決してディレクトリ変換は行われません。
- `enabled` キーワードとスペース区切りのユーザ名リスト。 全体では変換が無効になっていたとしても、 これらのユーザ名にはディレクトリ変換が行われます。 ただし、`disabled` 節にもあれば変換はされません。

もし `enabled` も `disabled` キーワードも `UserDir` に現われていなければ、 引数はファイル名パターンとして扱われ、 名前からディレクトリへの変換の指定を行なう時に使われます。 `http://www.example.com/~bob/one/two.html` へのリクエストは次のように変換されます:

UserDir ディレクティブ | 変換後のパス
--- | ---
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 ディレクティブ | 変換後のパス
--- | ---
UserDir http://www.example.com/users | http://www.example.com/users/bob/one/two.html
UserDir http://www.example.com/*/usr | http://www.example.com/bob/usr/one/two.html
UserDir http://www.example.com/~*/ | http://www.example.com/~bob/one/two.html

このディレクティブを使うときは注意してください; "`UserDir ./`" は "`/~root`" から "`/`" へマップしますが、 これは望ましい動作ではないでしょう。 "`UserDir disabled root`" 宣言を 設定の中に含めておくことを強くお薦めします。 追加情報に `Directory` ディレクティブや セキュリティ Tips のページもご覧下さい。

追加の例:

少数のユーザのみが `UserDir` ディレクトリを利用し、それ以外には利用させたくない場合は 次を使いましょう:

`UserDir disabled
UserDir enabled user1 user2 user3`

大部分のユーザは `UserDir` ディレクトリを利用するけれど、 少数の人は不許可にしたい場合は、次を使いましょう:

`UserDir enabled
UserDir disabled user4 user5 user6`

他のユーザディレクトリを指定することもできます。 次のようなコマンドを使うと:

`Userdir public_html /usr/web http://www.example.com/`

http://www.example.com/~bob/one/two.html へのリクエストはまず ~bob/public_html/one/two.html のページを調べ、その次に /usr/web/bob/one/two.html を調べ、最後に http://www.example.com/bob/one/two.html へのリダイレクトを送ります。

リダイレクトを加える場合は、リストの最後の選択肢でなければなりません。 Apache はリダイレクトが成功するかどうかを決めることはできませんので、 リストの前の方にリダイレクトを書くと、それが必ず使用される選択肢に なってしまいます。

2.1.4 以降では、ユーザディレクトリ置換機能はデフォルトでは起動しません。 それ以前のバージョンでは、`UserDir` ディレクティブが存在しなければ、`UserDir public_html` であると仮定されていました。

### 参照

- public_html チュートリアル