LoginSignup
4
2

More than 5 years have passed since last update.

Apache rewirteルールの第三引数の説明

Posted at

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=1http://hikkoshizamurai.com/fork/index.php?pg=sample&code=1
のように最後にクエリ文字列code=1が付加された形に変換される。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2