OpenLiteSpeed logo Open LiteSpeed Web Serverユーザーズマニュアル

Rewrite

目次

Rewrite制御

Rewriteマップ

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行だけにしてください。
  • RewriteCondRewriteRuleは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ガイドを参照してください。

構文

文字列