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