ここのひとりごとこーなーは気が向いたときにWWWブラウザから文章をHTMLで書いてPOSTしたものをPostgreSQLに食べさせてあげて、表示するときは必要なところをPHPでつまんで流している・・・のですが、このときのURLが
http://toriyu.dd.que.ne.jp/~takatani/chacha/hitorigoto/?date=2002-11-01とかになってしまうのを少し前からなんとかしたかったのです。'?DATE='形式がいけないという事はないのですが、
RewriteEngine on
RewriteBase /~takatani/chacha/hitorigoto/
RewriteRule ^today\.html index.php?count=1 [L]
RewriteRule ^all\.html index.php?count=0 [L]
RewriteRule ^([0-9]{4})\.html index.php?date=$1 [L]
RewriteRule ^([0-9]{4}-[0-9]{2})\.html index.php?date=$1 [L]
RewriteRule ^([0-9]{4}-[0-9]{2}-[0-9]{2})\.html index.php?date=$1 [L]
これで hitorigoto/2002-11.html のようなリクエストがあると hitorigoto/index.php?date=2002-11 であったかのように振舞ってくれます。あちこちで使いまくると何がどうなっているのかパニックになると思うのですが、一度作ったルールにパッチを当てる(笑)にはなかなか都合が良いです。
『?が入っているのはCGIなのでキャッシュされない』のは普通ありがたい動作なのですが、AirH"で自分のページをうろうろしているとリンクのページとかで画像をCGIで呼び出している部分がありまして『キャッシュされない』のがストレスの元だったりしたのです。こういうところも ? を含まないように書き換えた上で'Last-Modified:'を与えてあげると『動的に変更』と『てきとーにキャッシュ』がある程度両立できるのでなかなか気分が良いのです。
# ただし、WWWサーバの負荷は通常増大します(^^;