htaccess: Zugriff von einem Verzeichnis erlauben
baum
- html
Hallo liebes Forum,
einen htaccess-Unterpunkt gab es leider nicht, deshalb pack ich das hier hinein.
Ich möchte gerne eine Datei in einem Folder schützen und den Zugriff darauf verbieten. Ein php-Skript soll aber darauf zugreifen dürfen, bzw. die Directory, die eine Ebene drunter liegt.
So sieht das bei mir aus:
folder: download
folder:rar
1 File: *.jpg
1 File: .htaccess
3 files: *.php
Mein Problem ist, dass ich nicht weiß wie man in htaccess eine Ebene zurückgeht. In HTML ist ja über "../", aber das funktioniert hier nicht.
Der Codeabschnitt sieht so aus:
<FilesMatch "../login_success.php">
Allow from all
</FilesMatch>
Hoffe ihr könnt mir helfen!
lg baum
Hallo,
einen htaccess-Unterpunkt gab es leider nicht, deshalb pack ich das hier hinein.
der Themenbereich "SERVER" wäre eigentlich genau richtig gewesen, da es ja um die Serverkonfiguration geht, und keine Spur um HTML. Auch die Code-Auszeichnung weiter unten als "PHP" ist natürlich unsinnig; es sind Apache-Direktiven (daher lang=apache).
Ich möchte gerne eine Datei in einem Folder schützen und den Zugriff darauf verbieten. Ein php-Skript soll aber darauf zugreifen dürfen, bzw. die Directory, die eine Ebene drunter liegt.
Dann löst sich deine Überlegung möglicherweise von allein in Luft auf, weil PHP nicht über HTTP, sondern direkt über das Dateisystem zugreift. Also gelten Einschränkungen, die in einer .htaccess-Datei konfiguriert werden, für die von PHP getätigten Zugriffe überhaupt nicht.
Mein Problem ist, dass ich nicht weiß wie man in htaccess eine Ebene zurückgeht.
Gar nicht. Referenzen "nach oben" sind in .htaccess nicht vorgesehen.
<FilesMatch "../login_success.php">
Allow from all
</FilesMatch>
Nein, so nicht. Und ich gehe davon aus, dass du noch weitere Direktiven hast, die den Zugriff beschränken, denn dass der Zugriff erlaubt ist, ist ja die Standardeinstellung.
Leg die .htaccess-Datei eine Verzeichnisebene höher ab, und korrigiere die erste Zeile zu
> `<FilesMatch "login_success.php">`{:.language-apache}
Damit kommen wir der Sache schon erheblich näher.
Ciao,
Martin
--
F: Was ist wichtiger: Die Sonne oder der Mond?
A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
Hallo Martin,
vielen Dank für deine Antwort!
Ich habe jetzt die .htaccess und die login_succes.php in den Ordner mit der zu schützenden Datei gepackt. Die php-Datei die auf login_succes.php weiterleitet liegt eine Ebene drunter.
<FilesMatch "login_success.php">
Damit kommen wir der Sache schon erheblich näher.
Das hat leider auch nichts genutzt, ich bekomme nach wie vor einen 403. Meine .htaccess sieht so aus:
Order Deny,Allow
Deny from all
<FilesMatch "login_success.php">
Allow from all
</FilesMatch>
Was mache ich noch falsch?
lg baum
Hallo
Hallo Martin,
vielen Dank für deine Antwort!
Ich habe jetzt die .htaccess und die login_succes.php in den Ordner mit der zu schützenden Datei gepackt. Die php-Datei die auf login_succes.php weiterleitet liegt eine Ebene drunter.
Von wo aus und wie wird das Skript login_succes.php aufgerufen?
Leitest du per Header weiter oder wird das Skript z.B. über include(_once) oder require(_once) eingebunden?
Tschö, Auge
Hi Auge,
Von wo aus und wie wird das Skript login_succes.php aufgerufen?
Das Skript wird header von einem php-Skript, das eine Ebene drunter liegt, aufgerufen.
Leitest du per Header weiter oder wird das Skript z.B. über include(_once) oder require(_once) eingebunden?
login_success.php leitet ebenfalls per header auf die Zieldatei weiter.
Hi,
Von wo aus und wie wird das Skript login_succes.php aufgerufen?
Das Skript wird header von einem php-Skript, das eine Ebene drunter liegt, aufgerufen.
Leitest du per Header weiter oder wird das Skript z.B. über include(_once) oder require(_once) eingebunden?
login_success.php leitet ebenfalls per header auf die Zieldatei weiter.
Also Weiterleitungen, um das Ziel per HTTP auzurufen?
Nein, kann nicht sein, Zugriff per HTTP hast du ja verboten.
MfG ChrisB
Also Weiterleitungen, um das Ziel per HTTP auzurufen?
Nein, kann nicht sein, Zugriff per HTTP hast du ja verboten.
Muss ich denn dann noch auf meine login_succes.php weiterleiten? Das war ja nur das Skript, welches die Datei aufruft, gecheckt wird schon vorher, die, sofern der Versuch erfolgreich war, auf die Weiterleitung zum Zugriff verwiesen hat.
Was bleibt mir dann als Möglichkeit? Wie kann ich denn zB über include() den Download starten?
lg baum