mod_rewrite モジュールについて5回でまとめています。
その1 リダイレクトの基本
その2 RewriteCond ディレクティブ
その3 様々なリダイレクト利用例
その4 HTTP 環境変数一覧
その5 RewriteRule のフラグ一覧 ← 今回
mod_rewrite は、URL の書き換えを行う機能なので、RewiteRule では、URL 書き換えを行うための様々なフラグがあります。
RewriteRule のフラグ一覧です。
フラグ | syntax | 説明 |
---|---|---|
B | – | 書き換え処理前に英数字以外の文字をエスケープ(パーセントエンコーディング) |
C | chain | 条件に一致したら、後続の処理を適用。これは通常動作なので、条件が不一致の場合に後続の条件を適用しないために使用。 |
CO=NAME:VAL | Cookie | Cookie を設定。 |
DPI | discardpath | URI の PATH_INFO を破棄 |
E | ENV | 環境変数の値を設定。[E=変数名:値]で設定、 [E=!値] で値を削除。 |
F | forbidden | HTTP 403(閲覧禁止)エラーを返し、後続のルールを適用しない。 |
G | gone | HTTP 410(消滅)エラーを返し、後続のルールを適用しない。 |
H=Content-handler | Handler | 実行するアプリケーションのハンドラを強制的に指定。例)拡張子のないファイルはphp で実行。 RewriteRule !\. – [H=application/x-httpd-php] |
L | last | URLの書き換え処理を終了します。以降のルールはスキップ。 |
N | next | 書き換え処理を先頭から再実行 |
NC | nocase | 条件を評価する時、英字の大文字小文字を区別しない。 |
NE | noescape | & や % をエスケープせず文字列として扱う。 |
PT | passthrough | URLの書き換え後、他のモジュール(Alias、Redirect、ScriptAliasなど)に制御を渡す。 |
QSA | qsappend | 書き換え前の URL と置換文字列に、それぞれクエリ文字列(URL の ? 以降の文字列)がある場合、置換文字列の末尾に & と書き換え前の URL に指定されたクエリ文字列を追加。本フラグを指定しない場合、クエリ文字列は置換文字列で上書き。 |
R[=code] | Redirect | 指定したURLにリダイレクト。レスポンスコードの範囲は 300 ~ 399 まで。 301: 恒久的な移動 302: 一時的な移動 (デフォルト) 303: 他のもので置き換えられた場合 304: 恒久的に削除された場合 temp(デフォルト値)、permanent、seeother のシンボル名も指定可 |
S=num | skip | 指定した数のルールをスキップ。[S=2] と指定すると、条件に一致した場合、以降のルールを 2 つスキップ。 |
T=MIME-type | type | ターゲットファイルを強制的に指定した MIME-type にする。 |