これは私を狂気に駆り立てています。Windows 上の php スクリプトで RewriteMap ディレクティブを機能させることができないようです。これは、私の httpd.conf ファイルからの関連するスニペットです。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteMap router "prg:C:/dev/web/www/routing.php"
RewriteRule (.*) ${router:$1}
</IfModule>
私の単純な php スクリプトは次のようになります。
#!C:\Program Files\PHP5.3.2\php-win.exe
<?php
set_time_limit(0); # forever program!
$keyboard = fopen("php://stdin","r");
while (1) {
$line = trim(fgets($keyboard));
echo "/sandbox.php?url=$line";
echo "\n";
}
?>
Apache を起動しようとすると、エラー ログに次の行が表示されます。
[エラー] (OS 193)%1 は有効な Win32 アプリケーションではありません。: mod_rewrite: RewriteMap プログラムを開始できませんでした C:/dev/web/www/routing.php 設定に失敗しました
apache のドキュメントでは、インタープリターを指すスクリプトの最初の行である「マジック クッキー トリック」(「外部書き換えプログラム」という見出しの下) について言及しています。これは私が間違っているところですか、それとも RewriteMap ディレクティブを別の方法で呼び出す必要がありますか?