ひとりごと

新しい記事:[540]  古い記事:[538] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2002/11/01 (金)

・ 意外に使える mod_rewrite

ここのひとりごとこーなーは気が向いたときにWWWブラウザから文章をHTMLで書いてPOSTしたものをPostgreSQLに食べさせてあげて、表示するときは必要なところをPHPでつまんで流している・・・のですが、このときのURLが

http://toriyu.dd.que.ne.jp/~takatani/chacha/hitorigoto/?date=2002-11-01
とかになってしまうのを少し前からなんとかしたかったのです。'?DATE='形式がいけないという事はないのですが、 などということを考えるようになってきたのです。そんな訳で、下のような .htaccess を書いてみました。

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サーバの負荷は通常増大します(^^;
[つっこみ]

新しい記事:[540]  古い記事:[538] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)