mod_rewriteお勉強:RewriteMap

今日はRewriteMapについてお勉強。

よくわからないので、プログラムを使うprgについてテスト。勿論、プログラムはPHPで書く。

RewriteMapは.htaccessに書けないようなので、vhostに書いてみる。

RewriteEngine   On
RewriteLog      logs/rewrite.log
RewriteLogLevel 9
RewriteMap      test prg:/path/to/map.php
RewriteRule     ^/rewritemap/(.*)$ ${test:$1|no_variants} [R,L]

ログは確認のために一応設定。最初、RewriteRuleは.htaccessに書いていたんだけど、上手く動かなかったのでこっちに残ったまま。

で、map.phpは以下。

#!/opt/local/bin/php
<?
 
while(!feof(STDIN)) {
    echo "http://pmg4.local/proxy.php?q=" . trim(fgets(STDIN)) . "\n";
}
 
?>

RewriteMapの動作確認なので単純なもの。標準入力を受け取って吐き出すだけ。設定によっては(バッファリングしないように)"output_buffering"あたりをいじるのかな?

RewirteRuleを.htaccess書きたくなったので、rewritemap2というディレクトリを作って、そこに.htaccessを置いてみた。

RewriteEngine On
RewriteRule   ^(.*)$ ${test:$1|map2}

ちなみに、map経由で吐き出すproxy.phpってのはGET変数をダンプして表示するだけ。

<?php
 
echo "<pre>";
var_dump($_GET);
echo "</pre>";
 
?>

今回は『使ってみる』程度で終了。RewriteLockについてはまた今度(必要になったらテスト)。置換のフィルタにプログラムが使える(?)らしき事がテスト出来たので満足。

関係ないけど、GeSHiってapacheディレクティブ(?)も対応してるんだね。

プロフィール

このブログ記事について

このページは、koshigoeが2006年11月20日 23:57に書いたブログ記事です。

ひとつ前のブログ記事は「Selenium RC経由でJSが作るDOM(HTML)をテキストデータで受け取れるかな?」です。

次のブログ記事は「『第九回XML開発者の日』に行って来た」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。