TWIMC:
----------------------------------------------------------
::Sachverhalt
Ich habe ein Verzeichnis mit .htaccess (im entsprechenden Verzeichnis) geschützt und fange per .htaccess (im Hauptverzeichnis) die Fehler 401, 403, 404 und 500 ab und leite Sie an ein Perl-Script weiter. Dieses Script ruft entweder die wahrscheinlichste Seite auf, schickt eine Mail an den Webmaster oder ruft eine Login-Seite auf usw..
::Mein Fehler
Beim Status 401 werden nur folgende Zeilen ausgeführt:
$new_url = "$path_pages/all/html/dc/login.html";
$html = $cgi->redirect($new_url);
print $html;
Das hat dazu geführt, dass die Login-Seite *immer* ausgerufen wurde, egal, wie ich eine Seite im geschützten Bereich aufgerufen habe. Es erschien nicht einmal die Box zur Eingabe von Username und Password. Selbst wenn ich die Seite mit
http://username:password@www.example.com/geschuetzerbereich/file.html
aufgerufen habe, wurde nicht die aufgerufene Seite sondern die Login-Seite angezeigt. Wollte ich die Seite über die Login-Seite aufrufen, erschien wieder die Login-Seite....
::Lösung
Schließlich habe ich statt $html = $cgi->redirect($new_url); einen einfachen HTML-Code zusammengebastelt, in dem ein "refresh" und zur Sicherheit auch noch ein JavaScript zur Weiterleitung ausgeführt werden. Jetzt funktioniert es plötzlich: Rufe ich die geschützte Seite direkt auf, kommt die Eingabebox. 3 falsche Eingaben oder ein Abbruch ruft die Login-Seite auf und nach diesem LogIn wird die richtige Seite angezeigt.
----------------------------------------------------------------
Hat jemand eine Erklärung dafür?
Gruß von TomC