Hallo zusammen,
Funktionierende Lösung:
ErrorDocument 401 /betatest.html
ErrorDocument 403 /betatest.html
ErrorDocument 404 /error404.html
<FilesMatch ^(index.php)$>
Order allow,deny
Allow from all
AuthName "Betatest"
AuthType Basic
AuthUserFile /home/www/xxxxxxxxxxxxxxxxxxxxxxxx/.htpasswd
require valid-user
</FilesMatch>
<FilesMatch "(betatest.html|styles.css|logo.jpg|error404.html)$">
Allow from All
Satisfy any
</FilesMatch>
Ein Versuch die Lösung zu erklären:
1. Mit der ersten FilesMatch-Direktive kriegt der Server zuerst die Anweisung alle Dateien (außer index.php!) mit einer Passwortabfrage zu schützen.
2. Mit der zweiten FilesMatch-Direktive weiß der Server, dass er bestimmte aufgelistete Dateien ohne Passwortschutz zugänglich machen soll.
Bei der index.php weiß er nicht, was er machen soll. Er liefert daher (vermutlich ???) 403 Forbidden-Meldung, die mit ErrorDocument 403 abgefangen wird und den Benutzer auf die gewünschte Startseite (betatest.html) bringt.
In der Datei betatest.html habe ich den Link auf index.php platziert. Klickt der Benutzer drauf, so kommt die Passwortabfrage. Allerdings kommt die Passwortabfrage nicht für index.php, die ist ja nicht geschützt, sondern für die Bilder auf der Seite, die geschützt sind. Benutzer loggt sich ein und alles ist gut. Wenn Authentifizierung fehlschlägt, dann greift ErrorDocument 401 und wir sind wieder auf der Startseite.
Vielen Dank an ALLE für die Denkanstöße!
Gruß,
Sonja