Verzeichnis lässt sich nicht mit .htaccess schützen

  • Hallo zusammen,

    ich möchte ein Verzeichnis "/testverzeichnis" per.htaccess ("/testverzeichnis/.htaccess und ... .thpasswd") schützen. Dieses Verzeichnis hat mit Joomla nichts zu tun. Im Root ist die .htaccess von Joomla aktiviert, aber auch ohne aktivierte SEF-URLs tritt das folgende Problem auf.

    Die .htaccess mit dem Zugangsschutz lautet ganz normal:

    Apache Configuration
    AuthType Basic
    AuthName "Protected 'xxxx/testverzeichnis'"
    AuthUserFile "/home/z27zoexxx/xxx/testverzeichnis/.htpasswd"
    Require valid-user

    Leider klappt es nicht. Immer, wenn ich die .htaccess in das /testverzeichnis hochlade, werden die Seiten darin nicht mehr gefunden (404-Joomla-Seite erscheint). Ohne die .htaccess-Zugangsschutz-Datei werden die Seiten ganz normal aufgerufen.

    Folgende Fehlermeldung findet sich in der everything.php

    Code
    2023-01-20T16:33:16+00:00    CRITICAL 79.238.68.175    error    Uncaught Throwable of type Joomla\CMS\Router\Exception\RouteNotFoundException thrown with message "Seite nicht gefunden". Stack trace: #0 [ROOT]/libraries/src/Application/SiteApplication.php(736): Joomla\CMS\Router\Router->parse()
    #1 [ROOT]/libraries/src/Application/SiteApplication.php(224): Joomla\CMS\Application\SiteApplication->route()
    #2 [ROOT]/libraries/src/Application/CMSApplication.php(294): Joomla\CMS\Application\SiteApplication->doExecute()
    #3 [ROOT]/includes/app.php(61): Joomla\CMS\Application\CMSApplication->execute()
    #4 [ROOT]/index.php(32): require_once('/home/z27zoeq0n...')
    #5 {main}

    Ich habe mal gehört, dass dies ein bekanntes Problem seit Joomla 4 ist. Finde aber den Thread nicht mehr. Auch die beiden Threads hier im Forum:

    telebube
    22. September 2022 um 11:43

    führen zu keiner Lösung, hier werden ja auch "nur" Joomla-Verzeichnisse geschützt.

    Hat jemand einen Lösungsansatz?

    Vielen Dank
    Peter

    PS: Folgendes habe ich schon versucht, hat nichts gebracht:

    In der .htaccess vom Testverzeichnis RewriteEngine off reinzuschreiben.

    In der .htaccess vom Root (Joomla) nach RewriteEngine On folgenden Code: RewriteRule ^(testverzeichnis)($|/) - [L]

  • Ich blicke da bei deiner Problembeschreibung überhaupt nicht durch.

    Die .htaccess wird vom Server abgearbeitet und hat nichts mit Joomla zu tun, wie du bereits richtig geschrieben hast.

    Aber warum erwähnst du die Aktivierung von SEF-URLs oder die .htaccess im Joomla-Root?
    Warum erscheint eine 404-Joomla-Seite, wenn dein /testverzeichnis mit Joomla nichts zu tun hat?

    Liegt dein Testverzeichnis im Joomla-Root?
    Erläutere mal deine Verzeichnisstruktur!
    Und funktioniert der Passwortschutz prinzipiell?

  • Sorry, dass es ein bissel unklar ist. Ich versuche, es klarer auszudrücken:

    Und richtig, da das Verzeichnis nichts mit Joomla zu tun hat, sollte ich es schützen können. Es erscheint aber die von Joomla generierte 404. Und obige Fehlermeldung im Joomla-Log.

    Ich erkläre es mir so, dass die .htaccess von Joomla, die im Root-Verzeichnis liegt, das irgendwie auf Joomla umleitet, wenn ich die .htaccess mit dem Passwortschutz in das Testverzeichnis hochlade. Denn wenn ich die .htaccess im Root lösche, dann funktioniert der Verzeichnisschutz. im Testverzeichnis.

    Wird es so deutlicher?

  • Vielleicht solltest du die Instanzen parallel legen anstatt ineinander verschachtelt.

    Heisst im Root des Webspace für jede instanz einen eigenen Ordner. Das Rootverzeichnis des Wespace wird dann nicht adreesiert für die Domain sondern der jeweilige Ordner. So kommen sich die Installationen nicht ins Gehege.

  • Einfach mal so aus purer Langeweile hab ich das mit dem Verzeichnis und htaccess/passwort mal eben ausprobiert. Bei mir läuft es so, wie man sich das in der Theorie vorstellt. Allerdings verlangt dann halt Joomla selber einen Benutzernamen und ein Passwort, sobald man etwas aus diesem Verzeichnis in den Content laden will (bei mit 2 Bilder). Mir erschliesst sich der Sinn eines solchen Vorgehens nicht. Bevor du weiter bastelst, solltest du besser sagen, was du damit erreichen willst. Einen geschützen Bereich für Downloads oder sowas? Dann guck mal hier. Etwas anderes? Dann bin ich raus.

  • Also ... leider schaffe ich es nicht, mein Problem so auszudrücken, dass es völlig klar wird. Ich versuche es gerne noch einmal. Vielen Dank auf jeden Fall für eure bisherigen Antworten.

    Am besten schildere ich noch einmal von vorne:

    Joomla

    Testverzeichnis

    Dann habe ich auf dem Server ein Verzeichnis "testverzeichnis" mit Dateien, die NICHTS mit Joomla zu tun haben. Auch der Ordner wird nicht von Joomla erstellt, sondern wurde von mir auf dem Server per FTP erstellt. dass ich schützen möchte. Darin findet sich zum Beispiel die Seite ansicht.htm. Diesen Ordner möchte ich mit Username/Passwort schützen und nutze dafür eine eigene .htacces/.htpasswd-Kombi in dem Testverzeichnis. Also so, wie man es eigentlich macht:

    Das Problem

    Sobald ich die http://www.testdomain.de/testverzeichnis/.htaccess hochlade, ist http://www.testdomain.de/testverzeichnis/ansicht.htm nicht mehr erreichbar. Stattdessen kommt eine 404-Seite, die von Joomla generiert wurde. Im Fehlerlog von Joomla finde ich obigen Fehler. Obwohl dieses Testverzeichnis nix mit Joomla zu tun hat, dort nicht als Kategorie zu finden ist oder Ähnliches.

    Es ist einfach die Original-Joomla .htaccss (unter http://www.testdomain.de/.htaccess), die diese Anfrage nach Hochladen der Testverzeichnis-htaccess nach Joomla umleitet. Denn wenn ich die http://www.testdomain.de/.htaccess lösche, funktioniert der Passwortschutz im Testverzeichnis. Aber Joomla-SEF dann halt nicht mehr :)

    Frage also:

    Ich habe ja oben schon 2 mögliche Ansätze für Lösungen durch Änderungen der .htaccess dargestellt, die aber nicht zum Ziel geführt haben. Aber vielleicht kennt jemand noch einen weiteren Tipp?

    Vielen Dank

    Peter

    PS: Hilfreich wäre es auch zu wissen, ob das Problem auch auf anderen Servern/Hostings auftritt. Oder nur bei mir (Hoster: Domainfactory).

  • Nach der letzten Berschreibung ist es nun (zumindest für mich) verständlich. ;)

    Bei AuthUserFile habe ich noch nie mit Anführungsstrichen gearbeitet. Wenn es daran liegen sollte würde aber vermutlich eher ein 500er angezeigt werden.

    Ich tippe auf deine ansicht.htm. Arbeitest du in der SEF-Einstellung in der Joomla-Konfiguration mit "Dateiendung an URL anfügen"? D.h. werden alle URLs mit Dateiendung angezeigt?
    Versuche zunächst einfach mal ein Bild im Testverzeichnis aufzurufen! Funktioniert das?

  • Elwood: testdomain.de habe ich nur als Platzhalter gesetzt. Ich gebe ungern die richtige Domain raus, weil ja das olle Verzeichnis noch nicht geschützt ist :)

    Zitat

    Ich tippe auf deine ansicht.htm. Arbeitest du in der SEF-Einstellung in der Joomla-Konfiguration mit "Dateiendung an URL anfügen"? D.h. werden alle URLs mit Dateiendung angezeigt?

    Versuche zunächst einfach mal ein Bild im Testverzeichnis aufzurufen! Funktioniert das?

    Ja, mache ich. Und eigentlich haben alle Dateien im Testverzeichnis .php als Endung. Aber leider wird auch ein Bild nicht aufgerufen.

    Zitat

    Kannst auch mal z.B. eine Subdomain einrichten die direkt auf deinen Testverzeichnisdateiordner zeigt und dann testen ob der Fehler beim aufrufen der Subdomain weiterhin besteht.

    Habe ich probiert und siehe da: alles funktioniert. Mit test.testdomaind.de/testverzeichnis/index.php wird ganz normal die User-Passwortabfrage gestartet.

    Aber was mache ich mit dieser Erkenntnis?

  • Danke!

    Das mit der Subdomain könnte eine Möglichkeit sein, ich bin aber nicht sicher, ob dann noch alle Skripte in dem "Testverzeichnis" funktionieren. Das müsste ich ausprobieren.

    Leichter wäre es, wenn die beiden .htaccess-Dateien miteinander kombinierbar wären. Hast du eine Idee, wie ich Joomlas-htaccess anpassen/verändern muss, damit der Zugangsschutz funktioniert?

  • Elwood: Ich verstehe deinen Linkvorschlag nicht. Das "Wie geht Passwortschutz mit .htaccess normalerweise" war nie die Frage, nur hier kommt es sich mit den Einstellungen in der Joomla-.htaccess in die Quere ...

    Leider hat sich der Vorschlag mit der Subdomain auch als nicht funktionabel erwiesen.