mod-rewrite
Apache 2.4でmod-rewriteによって提供されるディレクティブ
サーチ…
構文
- RewriteBase URLパス
- RewriteCond TestString CondPattern
- RewriteEngine on | off
- RewriteMap MapName MapType:MapSource
- RewriteOptionsオプション
- RewriteRuleパターンの置換[フラグ]
Apache 2.4で利用できるディレクティブのリスト
Apache 2.4では、 mod_rewriteモジュールを使用して次の6つのディレクティブを提供しています。
- RewriteBase
- 書き換えコンド
- 書き換えエンジン
- 書き換えマップ
- RewriteOptions
- RewriteRule
これまでApache 2.2で利用可能だった以下のディレクティブは削除されました。
- 書き換えロック
- 書き換えログ
- RewriteLogLevel
mod_rewrite定義されたすべてのディレクティブ( RewriteMap除く)は、 AllowOverride FileInfoを使用してディレクトリごとの.htaccessをオーバーライドできます。
| 指令 | コンテキスト | 説明 |
|---|---|---|
| RewriteBase | ディレクトリ、.htaccess | ディレクトリ書き換えごとのベースURLを設定する |
| 書き換えコンド | どこにでも | 書き換えアクションが発生する条件を定義します。 |
| 書き換えエンジン | どこにでも | 書き換えエンジンの状態を設定する |
| 書き換えマップ | サーバー設定、仮想ホスト | キー参照機能を定義する |
| RewriteOptions | どこにでも | 書き換えエンジンの特別なオプションを設定する |
| RewriteRule | どこにでも | 書き換えエンジンの特定のルールを定義する |
コンテキストEverwhereは、以下の4つの場所のいずれかでディレクティブを定義できることを意味します。
- サーバー設定
- 仮想ホスト設定
- ディレクトリコンテキスト
- .htaccessファイル
RewriteLogおよびRewriteLogLevelディレクティブは、グローバルLogLevelディレクティブとマージされ、次のように使用されます。
LogLevel rewrite:<level>
ここで、 <level>はtrace8 (最下位)からemerg (最上位)までの値です。このリストは、 こちらから入手できます 。
RewriteBaseとRewriteEngine
| 指令 | デフォルト | コンテキスト | 説明 |
|---|---|---|---|
| RewriteBase | 無し | ディレクトリ、.htaccess | ディレクトリ書き換えごとのベースURLを設定する |
| 書き換えエンジン | オフ | どこにでも | 実行時書き換えエンジンを有効または無効にする |
RewriteBase
このディレクティブは、相対パスを置換するために使用されるURLプレフィックスを指定します。
RewriteEngine
このディレクティブは、 offに設定するoff 、実行時書き換え処理を実行しません。これらのルールは(サーバ設定からの)仮想ホストに継承されず、個別に定義する必要があります。
書き換えマップ
このディレクティブは、定義されたマップ内のキーをルックアップし、そのルックアップをマップからの置換で置き換える関数を定義します。
マッピング関数は、 RewriteMapディレクティブ自体で次のように定義されます。
RewriteMap MAPNAME Type:Source
RewriteCondまたはRewriteRuleディレクティブのいずれかで参照され、次のように置換ガイドとして機能します。
${ MAPNAME : KEY | DEFAULT }
次は、マップ定義のType有効な値です。
-
int-toupper、tolower、escape、unescapeのみを許可する -
txt- テキストファイルを検索する -
dbd- SQLSELECT文を使用してデータベースを検索する -
rnd- テキストファイルからのランダムな検索 -
dbm-httxt2dbmがデータをハッシュに変換する必要があることを除いて、txtに似ています -
fastdbd- キャッシュを持つSQLSELECT文を使用してデータベースを検索する
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow