フラグ |
意味 |
B |
英数字のエスケープ、いわゆるURLエンコード (&を%26など) |
chain | C |
次の処理を連続して行う場合に指定する (チェーン)
RewriteCond の 後ろの RewriteRule は、一行しか有効ではありません
複数の RewriteRule を記述したい際は、RewriteCond と RewriteRule のセットを複数記述するか、「C」フラグを記述して、ルールの継続を明示する必要があります
記述例 |
: |
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . example1[C]
RewriteRule . example2 |
|
cookie | CO=NAME:VAL |
Cookieをセットすることができる
書式 : CO=NAME:VAL:domain[:lifetime[:path[:secure[:httponly]]]] |
discardpath | DPI |
PATH_INFOの削除
PATH_INFOとは実際のスクリプトファイル名とクエリ文字列の間にある、クライアントが提供するパス名情報 |
END |
リライト処理を停止する
Lはルールセットだけだが、ENDの場合は.htaccess単位で終了するので後のリライトは無効になる (v2.2では使えなくなったようです) |
env | E=[!]VAR[:VAL] |
環境変数をセットできます
セットするときは[E=VAR:VAL]、削除するときは[E=!VAR]とする
例)hogeという閑居言う変数にhugaを入れる [E=hoge:huga] |
forbidden | F |
クライアントに 403 Forbiddenステータスコードを返す |
gone | G |
クライアントに 410 Goneステータスコードを返す |
Handler | H=Content-handler |
実行するアプリケーションを指定するハンドラを強制的に付ける
application/x-httpd-phpなど
設定ファイルでAddType application/x-httpd-php .phpとしておけば同じハンドラの場合はPHPプログラムとして実行されてる |
last | L |
Lフラグが付くとそこでルールセットが停止する
直後に続くルールを実行しない |
next | N |
書き換えを行ったら、ルールセットの最初からやり直す |
nocase|NC |
no case
大文字小文字を区別しない |
noescape | NE |
noescape
エスケープをしなくなる
通常は&や%はURLエスケープされるが、このフラグを使うとエスケープせずにそのままの文字になる |
nosubreq | NS |
現在のリクエストがサブリクエストの場合はルールをスキップ |
proxy | P |
ルールに一致したリクエストをプロキシを介して処理する
以降の処理はプロキシに渡るのでLフラグと同じようにルールの進行は停止する |
passthrough | PT |
uri フィールドに filename フィールドの値をセットする
直後にmod_aliasでディレクトリ構造の書き換えを行う際などに利用する |
qsappend | QSA |
クエリ文字列部分に書き換えではなく、文字を追加したい場合に指定する
通常「?」後のクエリ文字列は削除されるため利用する |
qsdiscard | QSD |
クエリ文字列がある場合削除される (これはデフォルトの動作) |
redirect | R[=code] |
クライアントに外部へのリダイレクトとレスポンスコードを返す
何も指定しないと 302 (一時的な移転) で返す
[L=301] とすれば レスポンスコードを 301 (恒久的な移転) に変更できる |
skip | S=num |
指定した数のルールをスキップする
[s=2]とすれば、一致した場合、以降のルールを2つ飛ばす
if-then-elseを実現できる |
type | T=MIME-type |
一致した項目にMIME-typeを付加する (AddTypeと同じ挙動) |