Это сводит меня с ума. Я не могу заставить директиву RewriteMap работать для сценария php на windows. Вот соответствующий фрагмент из моего файла 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, в журнале ошибок появляется следующая строка:
[ошибка] (ОС 193)% 1 недопустимо
Приложение Win32. : mod_rewrite:
не удалось запустить программу RewriteMap
C: /dev/web/www/routing.php
Ошибка конфигурации
Документация Apache относится к «магическому уловке печенья» (под заголовком «Программа внешней перезаписи»), которая должна быть первой строкой скрипта, которая должна указывать на интерпретатора. Это где я иду не так или мне нужно вызывать директиву RewriteMap по-другому?