電子書籍の厳選無料作品が豊富!

apache2.xにおいて、mod_rewriteを用いて
URLの動的な書き換えを行っていますが、
正規表現ではなく、URLの一部を用いて、外部(DB等)に問い合わせて、
その結果を元に書き換えができる方法を探しています。

例えば
http://example.co.jp/aaa/
というURLにアクセスがあった場合、
aaaをキーにしてDBに問い合わせて、その結果を元に
rewriteを行う、といったイメージです。

mod_rewriteのマニュアルを読んだのですが、
そのような事が出来そうな項目はありませんでした。

方法or代替策等ご存じの方
教えていただければと思います。

A 回答 (1件)

mod_rewriteとCGIやPHPを組み合わせれば大丈夫じゃないでしょうか。


例えば、リクエストURLが
hogehoge/aaa/bbb
の場合、
hogehoge.php?id=aaa&mode=bbb
というPHPに変数を渡すような正規表現を
/hogehoge/(.+)/(.+) /hogehoge.php?id=$1&mode=$2
のように指定し、表示すれば良いです。
Yahooやブログ等多くのページで使われている(であろう)技術ですね。
(最近ではphpを使っていてもURL上は/hogehoge/aaa/bbb.htmlのようなページがとても多くなってきています)

参考まで。

この回答への補足

回答ありがとうございます。
質問が悪かったみたいなので、補足させていただきます。

基本的にやりたいことは仰せのとおりなのですが、

hogehoge/aaa/bbb

hogehoge.php?id=ccc&mode=bbb
にrewriteする方法を探しています。

ここで出てくるcccは
RDBに問い合わせてaaa<-->cccの対応を取得しています。

つまり、
1.リクエスト hogehoge/aaa/bbb
2.DB問い合わせ (ex : SELECT column FROM table WHERE dir = 'aaa' LIMIT 1;)
3.2のcolumnを元にrewrite hogehoge/aaa/bbb <--> hogehoge.php?a=ccc&b=bbb
といった流れが出来ないか模索しております。

よろしくお願い致します。

補足日時:2007/07/18 12:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!