【.htaccess】mod_rewrite モジュール – その 5 RewriteRule のフラグ一覧

mod_rewrite モジュールを利用したリダイレクトについてまとめてきましたが、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 にする。