perl.cgi-Rätsel in Apache Umgebung.
Ich habe im Verzeichnis "hugo" ein .htaccess dokument mit
ErrorDocument 404 /cgi/perl.cgi
Dieses tut genau, was es soll, nämlich im Fall eines Aufruf eines nicht existierenden Dokuments das Programm perl.cgi aufrufen.
im Programm perl.cgi steht nichts anderes als
#!/usr/bin/perl -w
print "Location: http://www.meineseite.com/error.shtml\n\n";
exit(0);
Jetzt kommt das Rätsel:
ich gebe im Browser eine nicht existierende URL im Verzeichnis "hugo" ein, aber anstelle der Seite http://www.meineseite.com/error.shtml kommt nur eine leere Browserseite. Der Location Befehl in perl.cgi funkt also nicht. Wieso?
Der Data Stream zeigt folgendes:
Send data (245 bytes).
<00000000< GET /hugo/nixda.html HTTP/1.1
<0000001D< Host: http://www.meineseite.com/
<00000039< Accept: */*
<00000046< Accept-Language: de
<0000005B< Connection: Keep-Alive
<00000073< User-Agent: Mozilla/4.0 (compatible; MSIE 5.13; Mac_PowerPC)
<000000B1< UA-OS: MacOS
<000000BF< UA-CPU: PPC
<000000CC< Extension: Security/Remote-Passphrase
<000000F3<
Receive data (279 bytes).
00000000> HTTP/1.1 404 Not Found
00000018> Date: Sun, 21 Jul 2002 23:18:04 GMT
0000003D> Server: Apache/1.3.26 (Unix) FrontPage/5.0.2.2510 PHP/4.1.2
0000007A> Location: http://www.meineseite.com/error.shtml
000000A2> Keep-Alive: timeout=3, max=100
000000C2> Connection: Keep-Alive
000000DA> Transfer-Encoding: chunked
000000F6> Content-Type: text/plain
00000110>
00000112> 0
00000115>
dann kommt nichts mehr. weisse Seite.
Funktioniert nach einem .htaccess Aufruf der print "Location .." Befehl nicht mehr, weil der Apache vorher schon HTTP/1.1 404 Not Found gemeldet hat? Hintergrund; Ich will statische URLs angeben, deren Content aber durch ein perlskript dynamisch generiert wird.