ユーザーズマニュアル
Version 1.9 — Rev. 3

# Rewrite

### Rewriteを有効にする

#### 説明

LiteSpeedのURL書き換えエンジンを有効にするかどうかを指定します。 このオプションは、バーチャルホストまたはコンテキストレベルでカスタマイズでき、明示的に上書きされるまでディレクトリツリーに沿って継承されます。

#### 構文

ラジオボックスから選択

### .htaccessから自動読み込み

#### 説明

そのディレクトリに最初にアクセスしたとき、rewritefileディレクティブを使用するHttpContextがそのディレクトリにまだ存在しない場合、 ディレクトリの.htaccessファイルに含まれるRewriteルールを自動的に読み込みます。初回読み込み後にその.htaccessファイルへさらに変更を反映するには、 グレースフルリスタートを実行する必要があります。
バーチャルホストレベルの設定はサーバーレベルの設定を上書きします。デフォルト値：
サーバーレベル：No
VHレベル：サーバーレベル設定を継承

#### 構文

ラジオボックスから選択

### ログレベル

#### 説明

書き換えエンジンのデバッグ出力の詳細レベルを指定します。 この値の範囲は0-9です。0はロギングを無効にします。9は最も詳細なログを生成します。 このオプションを有効にするには、サーバーとバーチャルホストのエラーログログレベルを少なくともINFO以上に設定する必要があります。 これは、書き換えルールをテストする場合に便利です。

#### 構文

整数

#### 参照

Server ログレベル, Virtual Host ログレベル

### 名前

#### 説明

バーチャルホストレベルのRewriteマップに一意の名前を指定します。 この名前は、Rewriteルール内のマッピング参照で使用されます。 この名前を参照するときは、次の構文のいずれかを使用する必要があります:

> `$\{MapName:LookupKey\}
> $\{MapName:LookupKey|DefaultValue\}`

LiteSpeedのRewriteエンジン実装は、ApacheのRewriteエンジン仕様に従います。 Rewriteマップの詳細については、Apacheのmod_rewriteドキュメントを参照してください。

#### 構文

文字列

### ロケーション

#### 説明

MapType:MapSource構文を使用して、Rewriteマップの場所を指定します。
LiteSpeedのRewriteエンジンは、次の3種類のRewriteマップをサポートしています:

- 標準プレーンテキスト

  > MapType: txt;
  > MapSource: 有効なプレーンASCIIファイルへのファイルパス。

  このファイルの各行には空白で区切られた2つの要素が含まれていなければなりません。 最初の要素はキーで、2番目の要素は値です。 コメントには先頭に「#」という記号を付けることができます。
- ランダム化されたプレーンテキスト

  > MapType: rnd;
  > MapSource: 有効なプレーンASCIIファイルのファイルパス。

  ファイル形式は標準プレーンテキストファイルと似ていますが、2番目の要素には"|"記号で区切られた 複数の選択肢を含めることができ、Rewriteエンジンによってランダムに選択されます。
- 内部関数

  > MapType: int;
  > MapSource: 内部文字列関数

  4つの関数を利用できます：
  - toupper: 検索キーを大文字に変換します。
  - tolower: 検索キーを小文字に変換します。
  - escape: 検索キーにURLエンコードを実行します。
  - unescape: 検索キーでURLデコードを実行します。
Apacheで利用可能な次のマップタイプはLiteSpeedでは実装されていません：
ハッシュファイルと外部書き換えプログラム。

LiteSpeedのRewriteエンジン実装は、ApacheのRewriteエンジン仕様に従います。 Rewriteマップの詳細については、Apacheのmod_rewriteドキュメントを参照してください。

#### 構文

文字列

### Rewriteルール

#### 説明

バーチャルホストレベルのRewriteルールのリストを指定します。
ここにはドキュメントルートレベルのRewriteルールを追加しないでください。.htaccess由来のドキュメントルートレベルのRewriteルールがある場合は、代わりにURI「/」の静的コンテキストを作成し、そこにRewriteルールを追加してください。
Rewriteルールは1つのRewriteRuleディレクティブで構成され、任意で複数のRewriteCondディレクティブを前に置くことができます。

- 各ディレクティブは1行だけにしてください。
- RewriteCondとRewriteRuleはApacheのRewriteディレクティブ構文に従います。Apache設定ファイルからRewriteディレクティブをコピーして貼り付けるだけで使用できます。
- LiteSpeedとApache mod_rewriteの実装には小さな違いがあります:
  - %\{LA-U:variable\}と%\{LA-F:variable\}はLiteSpeed Rewriteエンジンでは無視されます。
  - LiteSpeed Rewriteエンジンには2つの新しいサーバー変数があります。%\{CURRENT_URI\}はRewriteエンジンによって処理されている現在のURIを表し、%\{SCRIPT_NAME\}は対応するCGI環境変数と同じ意味を持ちます。
  - LiteSpeed Rewriteエンジンはループを避けるため、[L]フラグに遭遇するとRewriteルールの処理を停止します。一方、Apache mod_rewriteは現在の反復についてのみRewriteルールの処理を停止します。この動作はApache mod_rewriteの[END]フラグに似ています。

LiteSpeedのRewriteエンジン実装はApacheのRewriteエンジン仕様に従います。Rewriteルールの詳細については、Apacheのmod_rewriteドキュメントとApacheのURL Rewriteガイドを参照してください。

#### 構文

文字列