Einzelne Dateien mit Passwort schützen (htaccess+Files)

Ich habe versucht, eine einzelnes php-Skript mit .htaccess zu schützen:

<Files save.php>
AuthType Basic
AuthName "xy"
AuthUserFile /users/USER/www/.htpasswd
require valid-user
</Files>

Natürlich habe ich “USER” durch den richtigen Namen ersetzt.
Die Authentifikation funktioniert, wenn ich sie für das ganze Verzeichnis anwende, aber nicht mehr, sobald ich die Direktive “Files” anwende.
Woran liegt das?

Wenn du das file in einem sub-dir auf root ebene der htaccess liegen hast, musst du sie in <Directory foo></> tags wrappen.

E.g.

Hier stand bullshit.

Edited

Die htaccess-Datei liegt auf Root-Ebene, das zu schützende Skript ebenso. Da liegt also nicht das Problem.
Und gemäss Apache-Dokumentation für die Direktive “Directory” ist diese in htaccess-Dateien nicht zulässig.
Aber danke für den Versuch, mir zu helfen.

Verzieh, ich habe mir deinen post nicht gruendlich genug durchgelesen.

Dein htaccess-snippet sollte exakt tun, was du zu erreichen versuchst.
Das fehlverhalten wird offenbar durch einen anderen teil der konfiguration hervorgerufen. Entsprechend kann man ohne den kompletten inhalt der htaccess (und ggf. der parents) nur das orakel befragen.

Der gezeigt Code ist der vollständige Inhalt der Datei .htaccess und die Datei ist im Hauptverzeichnis (meine DocumentRoot). Die Passwort-Datei ist korrekt, sie funktioniert ohne die <Files>-Direktive …

Ich frage mich, ob BPLACED diese Direktive nicht erlaubt (nur für BPLACED PRO?).

habs grade extra mal hier getestet: kein problem.

Danke snowflake für Deine Antwort!
Aber was meinst Du mit hier? Auf bplaced freestyle?

Ich versteh’s einfach nicht: wenn ich die erste und letzte Zeile (<Files>-Direktive) auskommentiere, dann funktioniert es.
Nehme ich die Kommentarzeichen wieder weg → http code 500

Muss ich daraus nicht die Schlussfolgerung ziehen, dass die <Files>-Direktive nicht akzeptiert wird?

Nachtrag: In der Dokumentation von Apache steht, dass für die Akzeptanz von <Files>-Direktiven in .htaccess-Dateien die Direktive AllowOverride All konfiguriert sein muss.
Ist dies bei bplaced freestyle der Fall?

Mit hier meine ich freestyle, freestyle plus und pro.

Ja.

Nein, daraus musst du schlussfolgern das du einen generellen syntax error suchst. Koennen sowohl unbekannte direktiven sein, als auch alle anderen unbekannten symbole/syntax.

Wenn du tatsaechlich das von dir im ursprungspost verwendeten snippet 1:1 benutzt, deinen username richtig geschrieben hast und deine datei save.php tatsaechlich auf gleicher ebene mit der .htaccess liegt, funktioniert es.

Appendix A: fehler in php werfen ebenfalls 500er codes.

1 „Gefällt mir“

snowflake: Besten Dank für die Geduld, jetzt hat’s endlich geklappt.

Ich habe den Code vom Startpost nochmals von Hand neu eingetippt, da hat es funktioniert. Habe nun beim Wechsel meiner alten Datei von UTF-8 nach ANSI und wieder zurück herausgefunden, dass sich ein unter UTF-8 nicht sichtbares Spezialzeichen eingeschlichen hatte, welches von Apache offensichtlich nicht akzeptiert wird.

Dann wuerde ich dir empfehlen den Texteditor zu wechseln, oder in den settings deines editors das byte-order mark zu disablen. Das beisst dir sonst noch oefter in den arsch.