今からでも遅くない、本当に明日使えるApache mod_rewriteの小ネタ

RewriteCondでは、日時の情報も使えるので:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/0401/
RewriteCond %{TIME_MON}%{TIME_DAY} 0401
RewriteRule . /0401/ [R,L]

enjoy!

追記 (2010-04-01)

あわせて読みたい、というかこっちの方がちゃんと解説してあります。

"<"や">"と[OR]を使って、日時の範囲を表現しています。すらばしす。


蛇足ですが、

RewriteCond ...1
RewriteCond ...2
RewriteRule ...3

という書き方をしますが、マッチんぐの検査順は、上から順に

  1. RewriteCond ...1
  2. RewriteCond ...2
  3. RewriteRule ...3

ではなく、まずRewriteRuleが最初で、そこから上にRewriteCondを評価していきます:

  1. RewriteRule ...3
  2. RewriteCond ...2
  3. RewriteCond ...1

see Apache mod_rewrite Technical Details - Apache HTTP Server

これを知らないと、「RewriteCondで絞りきってるからRewriteRuleのパターンはなんでもマッチする"."とかでいいじゃん」となり、ちょっと無駄な処理が増えてしまいますので要注意です。