Esto me ha estado volviendo loco. Parece que no puedo obtener la directiva RewriteMap para trabajar con un script php en Windows. Aquí está el fragmento relevante de mi archivo httpd.conf:Apache mod_rewrite: directiva RewriteMap utilizando script PHP en Windows máquina
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteMap router "prg:C:/dev/web/www/routing.php"
RewriteRule (.*) ${router:$1}
</IfModule>
Mi simple script php dice así:
#!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";
}
?>
Cuando intento iniciar Apache tengo la siguiente línea en mi registro de errores:
[error] (OS 193)% 1 no es una aplicación válida Win32. : Mod_rewrite: No se pudo iniciar el programa RewriteMap C: /dev/web/www/routing.php configuración con anomalías
The apache documentation se refiere a la 'cookie truco de magia' (bajo el encabezado "Programa de reescritura Externo) que debería ser la primera línea del script que debe apuntar al intérprete. ¿Esto es donde me estoy equivocando o necesito llamar a la directiva RewriteMap de manera diferente?
(+1) Los comentarios en 'apr_proc_create' (usado para invocar el programa) también toman nota: * progname debe ser sin comillas, en formato nativo, ya que hay todo tipo de errores en el código del cargador de biblioteca NT que falla al analizar '/' *, aunque no estoy seguro de cuán grave es en realidad. Parece que el comando también se cita automáticamente más tarde (según sea necesario), así que con suerte los espacios no deberían ser un problema. –
@Tim: ¡Gracias! De todos modos, los espacios son algo a tener en cuenta porque te pueden morder en diversas circunstancias. –