RewriteRule と RewriteCond

mod_rewrite は

RewriteCond
...
(複数記述可)
...
RewriteCond
RewriteRule

の順で書くが、評価は

  1. RewriteRule の Rule にマッチしたら
  2. RewriteCond の条件を上から順に評価
  3. Cond の条件のどれかが真になったら RewriteRule に書かれた URL 書き換えを実行
  4. どれも真にならなかったら pass-through

となっていて、記述順と評価順が違うので注意。凝った条件なんてめったに書かないからいつも忘れる。迷ったときはテスト環境で RewriteLogLevel を思いっきり上げてじっくりテストすること。

More