Geschütztes Verzeichnis funktioniert nicht

  • Ich habe im WCP über Geschützte Verzeichnisse ein Verzeichnis angelegt und einen entsprechenden Benutzer dafür erstellt. Wenn ich jetzt eine Seite in diesem Verzeichnis aufrufe, wird diese jedoch ganz normal angezeigt, es wird kein Benutzer und Passwort abgefragt, die Seite ist ganz normal zugänglich.


    Ich möchte alle Seiten unter domain.com/verzeichnis schützen und habe unter dieser Domain /verzeichnis als geschütztes Verzeichnis mit Benutzer angelegt. Was mache ich falsch?

  • Befindet sich die aufgerufene Seite eventuell noch im Browsercache? Ist das eine statische HTML-Datei oder steckt da irgendwas mit PHP oder anderen Programmiersprachen dahinter?


    Was Du sonst noch prüfen könntest: Gibt es im betroffenen Ordner oder in einem der darüberliegenden Ordner eine .htaccess-Datei?

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

  • Cache kann ich ausschließen, auch in einem anderen Browser (wo die Seite noch nie aufgerufen wurde) funktioniert der Aufruf ungeschützt.

    Es handelt sich um ganz normale .htm Dateien, im ganzen Verzeichnis gibt es sonst nur noch Bilder.


    Im darüberliegenden Ordner gibt es eine .htaccess vom verwendeten CMS MODX:

    Das Verzeichnis ist aber grundsätzlich unabhängig vom CMS, also wurde weder darüber erstellt, noch gibt es z. B. den gleichen Verzeichnisnamen.

  • Im Dateimanager sehe ich tatsächlich nichts dergleichen. Ehrlich gesagt habe ich mir auch gar keine Gedanken darüber gemacht, wie der Schutz funktioniert. Werden hier auch einfach .htaccess und .htpasswd erstellt?

  • Hmm, gerade mal probiert, ich denke nicht, dass es über eine .htaccess passiert. Eventuell wird es direkt in der Apache/vHost Konfiguration eingetragen. Keine Ahnung, ehrlich gesagt. Ich habe jedenfalls gerade auch mal ein geschütztes Verzeichnis angelegt, bis jetzt funktioniert es jedenfalls nicht, der Apache liefert eine darin befindliche Textdatei problemlos aus. Und eine .htaccess ist da auch nicht drin. Ansonsten entweder beim Support nachfragen, oder es halt notfalls selbst mit .htaccess und .htpasswd machen. Suboptimal, scheint aber wenigstens zu funktionieren. Jedenfalls, sofern das hier noch aktuell ist.

  • Bist Du wirklich sicher, dass die HTML-Datei durch den Webserver und nicht durch PHP/MODX ausgeliefert wird?


    Der Teil sagt nämlich etwas anderes:

    Apache Configuration
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

    Wenn es die angeforderte Datei bzw. Ordner nicht gibt, landet alles bei der index.php. Meinem Verständnis nach müsste der Verzeichnisschutz (auf Nginx-Ebene?) zwar trotzdem greifen, aber wer weiß.


    Kannst Du diese Zeilen mal zum Test abändern?

    Apache Configuration
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/deinordner/
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

    /deinordner/ bitte entsprechend anpassen und das Testverzeichnisses eintragen, um das es geht! (Also den Teil, den Du auch in der Adresszeile des Browsers siehst.)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    2 Mal editiert, zuletzt von KB19 ()

  • tab Vielen Dank fürs Testen! Ich hatte es davor schon selbst per .htaccess probiert, aber Fehler gekriegt. Dein verlinkter Post hat dabei aber sehr geholfen, das funktioniert jetzt einwandfrei!


    Bist Du wirklich sicher, dass die HTML-Datei durch den Webserver und nicht durch PHP/MODX ausgeliefert wird?

    Nein, bin ich nicht. Es kann schon sein, dass hier MODX übergeordnet greift. Ich habe die .htaccess wie von dir vorgeschlagen angepasst und das "Geschützte Verzeichnis" nochmal neu eingerichtet, jedoch ohne Erfolg. Die Dateien bleiben ungeschützt zugänglich.


    Vielleicht dann doch eher was für den Support.

  • Naja, wenn das Verzeichnis/die Datei nicht wirklich existiert, dann dürfte die RewriteRule nicht greifen. Bei meinen Versuchen gibt es keine .htaccess und nur ein Unterverzeichnis und eine readme.txt drin. Die wird mir astrein ausgeliefert, wenn ich sie direkt aufrufe. Ich habe den Pfad zum Verzeichnis auch schon in allen möglichen Varianten ausprobiert. Als absoluten Pfad mit /var/www/..., als Pfad entsprechend dem chroot und auch relativ zum Dokumentenstamm der Domain. Macht bei mir keinerlei Unterschied, auch nicht nach einer längeren Wartezeit. Es kann ja auch nicht der Sinn einers Verzeichnisschutzes sein, dass der Kunde sich die Funktionsweise und die richtige Pfadangabe aus den Fingern saugen muss. Normalerweise würde ich davon ausgehen, dass der Kunde vom ansoluten Pfad keine Ahnung hat, also muss es mit dem chroot-Pfad gehen, der Rest sollte Sache von Plesk sein.


    Wenn man den Verzeichnisschutz selbst mittels .htaccess und .htpasswd einrichtet, sehe ich natürlich ein, dass man dann den korrekten absoluten Pfad zur .htpasswd, der in die .htaccess eingetragen wird, eben selbst rausfinden muss, weil es sonst natürlich nicht funktionieren kann.

  • Ich habe den Pfad zum Verzeichnis auch schon in allen möglichen Varianten ausprobiert. Als absoluten Pfad mit /var/www/..., als Pfad entsprechend dem chroot und auch relativ zum Dokumentenstamm der Domain.

    Der Pfad ist relativ zum Dokumentenstamm der Domain (Allerdings mit vorangestelltem Slash)
    Das Verzeichnis sollte schon vorhanden sein.


    Das mit dem Schutz funktioniert m.W. allerdings nur dann, wenn man auch einen Benutzer dazu anlegt.


    EDIT: Bei mir funktioniert das auch auf Anhieb. Eben bei meinen letzten verbliebenen Webhosting ausprobiert. :)

    (nginx ist auf Proxy-Modus und Caching ist deaktiviert)


    pasted-from-clipboard.png

  • Der Pfad ist relativ zum Dokumentenstamm der Domain (Allerdings mit vorangestelltem Slash)

    So steht es dabei, hat bei mir allerdings auch nicht funktioniert.


    Das Verzeichnis sollte schon vorhanden sein.

    Nicht unbedingt, sollte das nicht der Fall sein, wird es von Plesk einfach angelegt.

    tab Bei deinen Pfadtests hast du dadurch vermutlich mehrere dieser Ordner angelegt.


    Das mit dem Schutz funktioniert m.W. allerdings nur dann, wenn man auch einen Benutzer dazu anlegt.

    Einen Benutzer hatte ich wie im ersten Post beschrieben auch angelegt, die Option hat man ja direkt, nachdem man das Verzeichnis angelegt hat.


    Freut mich, das es bei dir funktioniert hat, bei mir leider trotz vermeintlich gleichem Setup nicht :(

  • Dann würde ich mich an Deiner Stelle einmal eine Test-Subdomain anlegen, die auf einen anderen (leeren) Dokumentenstamm zeigt. Wenn ein neu angelegter Verzeichnisschutz dort nach 15 Minuten auch nicht funktioniert: Mail an den Support.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

  • Tatsächlich hat es bei mir unter einer Test-Subdomain funktioniert, vermutlich hat dann wirklich das CMS dazwischengefunkt.

    Es werden aber in der Tat keine .htaccess und .htpasswd Dateien angelegt, dementsprechend wird das wohl übergeordnet geregelt.


    Danke für die Mithilfe allerseits!