Christian Seiler: Problem mit .htaccess und Verzeichnisstruktur

Beitrag lesen

Hallo Andreas,

ich will das bei Aufruf von "www.domain.de/geschuetztes_verz/" das normale basic-auth Fenster aufgeht, halt duch die .htaccess im Verzeichnis.

Schon klar.

Falls jetzt hier durch den Anwender abgebrochen wird, erzeugt der _Apache_ ja eine 401er Meldung.

Falsch. Diesen Fehler machen alle. Die 401er-Seite wird _immer_ an den Browser gesandt, der zeigt das Fenster an und rednert die Seite *nur dann*, wenn der User auf Abbrechen drückt. Aber es findet bei Abbrechen nur eine einmalige Kommunikation zwischen Server und Client statt.

[...] geh einfach davon aus ich verwende nur html.

Ok - werde ich machen.

Wo erfolgt der? Der Witz ist ja, das das ganze so wie ich es mir überlegtr habe mit "symbolischen" Verzeichnissen klappt, mein provider hat das halt so eingerichtet(keine Ahnung wie das genau geht), dass bei Aufruf von errordocs/ in ein ganz anderes Verzeichnis außerhalb des document roots gelinkt wird. Dahin kann man nicht weiterleiten, da  ein HTTP-Request nunmal nur innerhalb des doc-root gutgehen kann. Der Browser denkt, er sei im geschützen Verzeichnis, bekommt aber eine individuelle Fehlermeldung, die halt in Wirklichkeit außerhalb des doc-root liegt. Und wenn ich mein PHP-Script in dieses Verzeichnis lege und in der .htaccess

Errordocument 401 errordocs/sript.php?error=401

Moment - errordocs kann ja nur ein Alias sein - es geht einzig und alleine *darum*, ob die Seite vom Browser aus erreichbar ist. Und wenn das ein Alias ist, dann *ist* die Seite von Browser aus erreichbar, egal ob im Docroot oder nicht. Aber warum das nur klappt, wenn das Ding im errordocs-Unterverzeichnis, das geht über meinen Verstand...

angebe, dann funktiomiert e genau so wie ich will,
es wird das besagte Script an der eigentlichen login-Adresse angezeigt, welches eine Fehlermeldung und was weiß ich enthält.

Hmmmm. Es kommt auch das Fenster, wie? OK, dann klappt das anscheinend auch mit Parametern. (wundert mich)

Wieso funktioniert es dann?

Entweder irre ich mich, oder Du begehst einen systematischen Fehler. Such' Dir eines aus. ;)

Außerdem habe ich innerhalb des PHP-Scriptes dann gar nicht die Möglichkeit zu prüfen wie die Datei heißt, denn in den Umgebungsvariablen steht tatsächlich das Login-Verzeichnis(www.domain.de/geschuetztes_verz/)!

Dann wird wirklich kein Redirect gemacht... Sicher, dass Du die Paramter bei diesem Test mit angegeben hast?

PHP sendet gar nichts, das ganze wird vom Apachen angestoßen. Geh davon aus dass ich überhaupt kein PHP verwende nur .html.

Ok, ich dachte, PHP sendet immer einen Status: 200 - naja.

Grüße,

Christian

--
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                      -- Albert Einstein