rewirteルールの第三引数の説明
第三引数の説明
第三引数 | 説明 |
---|---|
[C] | chain 次のRewriteRuleと条件を結合する(置換禁止文字列”-“を用いて複数の条件をANDで複合適用する場合に用いる) |
[E] | environment E=VAR:VAL 環境変数のセット。VAR という名前の環境変数の値を VAL に するよう指示します |
[F] | forbidden(403) マッチしたURLへのアクセスを禁止する(クライアントには”403 Forbidden”のレスポンスが返される) |
[G] | gone(410) マッチしたURLは行方不明であることを伝える(クライアントには”410 Gone”のレスポンスが返される) |
[L] | last 条件にマッチした場合そこで判定を終了する(以下に続くRewriteRuleを評価しない) |
[N] | next 書き換えが済んだURLを新たなリクエストとして書き換え処理を再度最初のルールから繰り返す |
[P] | proxy PROXYモジュールを使用して他のサーバー(URL)にあるコンテンツを取得しその内容をクライントに返す |
[R] | redirect “302 Moved Temporaily”のレスポンスを返しクライアントをリダイレクトする。[R=301] と書けば、”301 Moved Permanently”に変更することもできる |
[S] | skip 現在のルールがマッチしたら、次の'数字'番目のルールをスキップするよう指示します。これを使って、擬似的に if-then-else 構造を作ることができます |
[NC] | no case 大文字小文字を区別しない |
[NE] | no escape 書き換え結果に対して通常行なわれるURLエスケープルールを適用しないようにします。出力の中にパーセント文字を 使うことができます |
[NS] | no subrequest 一次的なURLリクエストの場合のみ条件を評価(サーバー内部で発せられるサブリクエストの場合は判定をスキップする) |
[OR] | or 条件をorでつなぐ(背反する and は暗黙であるため、何も書かなければ and として扱われる) |
[PT] | pass through mod_alias と mod_rewrite の同時使用時などで使用する |
[QSA] | query string append 置換文字列の中でマッチしたものを書き換えるのではなく、そこにクエリー文字列部分を追加するように書き換えエンジンに強制します。書き換えルールを通してクエリー文字列に何かデータを追加したい場合にこのフラグを使います |
オプション機能は組み合わせて使用することもできる。
例)[R=301,L,NS]
QSAフラグがあるケース
上記のように入力URLにクエリ文字列が存在する場合は、QSAをいれて以下のようにしておけばよい。
RewriteRule ^/(.+)/pg/(.*)$ /$1/index.php?pg=$2 [QSA,L]
http://hikkosizamurai.jp/fork/pg/sample?code=1 はhttp://hikkoshizamurai.com/fork/index.php?pg=sample&code=1
のように最後にクエリ文字列code=1が付加された形に変換される。