Hi.Adachinです。
そういえばApache系の設定についてブログしていないなあと。。。
nginxもApacheもできないとダメなので・・・
そんでもって、あんまり理解していな・・・そんなことはありません!(;・∀・)
今回は覚えるとかなり重宝するRewriteCondについてブログします。
■Apache RewriteCondとは
元々はmod_rewrite の機能で、
RewriteCond に記述した条件が満たされた時のみ、RewriteRule に書いたURLの書き換えと転送が実行されるようにできます。
例えば、「〜にアクセスしたらこっちに飛ばす」みたいなイメージですな。
上記の画像も正規表現使って飛ばしてますね。
なんかリダイレクトみたい・・・
■RewriteCond の書き方
1 2 |
RewriteCond %変数名(テスト文字列) 条件パターン(正規表現) [フラグ] RewriteRule URL書換&転送設定 |
■フラグについて
- RewriteCond の適用条件 AND/OR を切替える
- 条件判定に大文字/小文字の区別をするか否かを切替える
1は複数指定するとANDとORを切り替えます。フラグを記述しない場合はANDですね。
2は大文字なのか小文字なのか違うのかで切り替えます。そのまんま・・・
[NC]と記述すると切り替えませんね。
正規表現みたいですが、少し例を出してみます。
・条件を一つ指定する場合
1 2 |
RewriteCond %変数名 条件 RewriteRule URL書換&転送の記述 |
1 2 |
RewriteCond %変数名 条件 [NC] RewriteRule URL書換&転送の記述 |
・条件を複数指定する場合
1 2 3 |
RewriteCond %変数名 条件 RewriteCond %変数名 条件 RewriteRule URL書換&転送の記述 |
こんなかんじでいろいろ対応してます。
■変数について
Apacheではたくさんの変数があるので、使いこなしましょう!
■まとめ
mod系をできるようになると、できないことが可能になって、
非常におもしろい。
ちなみにnginxでもやり方は一緒ですね。
ちなみに前回ブログしたnginxのリダイレクトとなにが違うのか・・・
調べないと(;・∀・汗)
参考:http://httpd.apache.org/docs/2.2/rewrite/intro.html
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
http://weblabo.oscasierra.net/apache-rewritecond-base/
0件のコメント