htaccess-Seitenschutz
flo
- html
Hallo,
ich möchte gerne in einem Ordner, bestehend aus mehreren .php Seiten, zwei oder drei von diesen via .htaccess und <FilesMatch "XYZ.php"> schützen. Für eine Seite also ganz einfach.
Aber wie sieht es bei mehreren Seiten aus: <FilesMatch "X.php; Y.php; ..."> oder aber wird dann die benötigte Anzahl an FilesMatch geschrieben?
MfG
flo
Hallo,
das Ding in Anführungszeichen (bei dir "XYZ.php") ist eine Regular expression (siehe Internet), also kannst du in dem Format auch Alternativen angeben ("Stichzeichen": |)
Schlag's mal in Selfhtml nach oder google "regex".
Gruß,
Ruben
hallo ruben,
Schlag's mal in Selfhtml nach
Wenn du dich hier auf http://de.selfhtml.org/servercgi/server/htaccess.htm beziehst, ist das leider für diese spezielle Fragestellung derzeit nicht hilfreich. Es gibt da keinen Textabsatz, der den genauen Einsatz der zulässigen Container beschreibt. Man kann allerdings überlegen, ob so eine Passage in die nächste Version aufgenommen werden sollte.
oder google "regex".
Das liefert einfach zuviel Ergebnisse. Und hier gibt es durchaus eine Beispielseite in SELFHTML.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
du hast mich (vllt. absichtlich) völlig verkehrt herum verstanden. Die htaccess Sachen schlägst du in selfhtml nach und die RegEx Sachen in Google..
Zu RegEx liefert Selfhtml eine vernünftige Erklärung und Google kann dann beim Einbau in die htaccess helfen.
Mir hat eine Suche nach htaccess und filesmatch schon die gewünschten Ergebnisse geliefert. Nen bisschen selberdenken muss sein, das hat dieses Forum sogar mir schon beigebracht.
Gruß,
Ruben
hallo,
Die htaccess Sachen schlägst du in selfhtml nach
Hm. Das ist durchaus erwünscht, nur steht da eben nichts davon, was _innerhalb_ solcher Container wie <Files ...> stehen darf und was _nicht_ in solche Container eingeschlossen werden kann. Und _das_ könnte in der nächsten Version von SELFHTML noch mit aufgenommen werden. Schaun mer mal ...
Nen bisschen selberdenken muss sein, das hat dieses Forum sogar mir schon beigebracht.
Glückwunsch.
Grüße aus Berlin
Christoph S.
hallo,
Aber wie sieht es bei mehreren Seiten aus: <FilesMatch "X.php; Y.php; ..."> oder aber wird dann die benötigte Anzahl an FilesMatch geschrieben?
Es wäre möglich, aber nicht eben elegant, mehrere <Files "*.php">-Container einzustellen - also eben _nicht_ "FilesMatch". Diese Anweisung wurde dafür geschaffen, daß man mit ihr Reguläre Ausdrücke einsetzen kann. Du müßtest mit Regulären Ausdrücken experimentieren, um herauszufinden, wie du mehrere Dateinamen filtern kannst. Ein Beispiel steht in der Apache-Doku.
Grüße aus Berlin
Christoph S.
Hm, nun habe ich ein bißchen experiementiert, mit Firefox und Opera klappte verläuft alles wunschgemäß. Nur bei IE 6.0 will folgendes überhaupt nicht funktionieren:
.htaccess
<FilesMatch "testseite.php">
AuthName "Test"
AuthType Basic
AuthUserFile /absolute Pfadangabe/.htpasswd
require valid-user
</FilesMatch>
.htpasswd als Beispiel:
hans:sdfs:sdF4udl/Bej6Y
selbst bei einer wohl normalen .htaccess a la
AuthName "Test"
AuthType Basic
AuthUserFile /absolute Pfadfangabe/.htpasswd
order deny,allow
allow from all
require valid-user
erscheint ohne Passwortabfrage die Meldung: "Authorization Required
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required."
Weiß jemand Abhilfe?
hallo,
mit Firefox und Opera klappte verläuft alles wunschgemäß
Das ist kaum nachvollziehbar, da dein Problem nichts mit deinem Browser zu tun hat
<FilesMatch "testseite.php">
AuthName "Test"
AuthType Basic
Die beiden Anweisungen AuthName und AuthType gelten jeweils für das gesamte Verzeichnis, lassen sich aber nicht in einen Container wie <Files ...> einsperren.
erscheint ohne Passwortabfrage die Meldung: "Authorization Required"
Etwas eigentümlich. An sich dürfte keine Paßwortabfrage kommen und auch keinerlei "Schutz" bestehen. Was sagen denn die Server-logs dazu aus?
Und übrigens: mit "HTML" hat deine Frage gar nichts zu tun.
Grüße aus Berlin
Christoph S.