Dies hat mich verrückt gemacht. Ich kann nicht scheinen, dass die RewriteMap-Direktive für ein PHP-Skript unter Windows funktioniert. Hier ist der relevante Ausschnitt aus meiner httpd.conf:Apache mod_rewrite: RewriteMap-Anweisung mit PHP-Skript auf Windows-Maschine
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteMap router "prg:C:/dev/web/www/routing.php"
RewriteRule (.*) ${router:$1}
</IfModule>
Meine einfache PHP-Skript liest sich wie folgt:
#!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";
}
?>
Wenn ich versuche zu starten Apache ich die folgende Zeile in meinem Fehlerprotokoll erhalten:
[Fehler] (OS 193)% 1 ist keine gültige Win32-Anwendung. : Mod_rewrite: konnte nicht RewriteMap Programm C starten: /dev/web/www/routing.php Konfiguration
fehlgeschlagen
The apache documentation auf die 'magic cookie Trick' bezieht sich (unter dem 'Externe Rewriting Programm' Überschrift) Dies sollte die erste Zeile des Skripts sein, die auf den Interpreter zeigen soll. Gehe ich hier falsch oder muss ich die RewriteMap-Anweisung anders aufrufen?
(+1) Kommentare in 'apr_proc_create' (verwendet, um das Programm aufzurufen) auch beachten Sie: * progname muss im nativen Format nicht quoted sein, da es alle Arten von Fehlern im NT-Bibliotheksladercode gibt, die beim Parsen Fehler '/' *, obwohl ich mir nicht sicher bin, wie groß das tatsächlich ist. Es sieht so aus, als würde der Befehl später automatisch zitiert (falls nötig), also sollten die Leerzeichen hoffentlich kein Problem sein. –
@Tim: Danke! Wie auch immer, die Räume sind etwas, auf das Sie achten sollten, weil sie Sie in verschiedenen Umständen beißen können. –