Support » Allgemeine Fragen » .htaccess für bestimmte Upload Ordner anpassen

  • Hallo, ich stehe seit einigen Tagen vor dem Problem das ich im /upload/ Ordner 4 weitere Ordner habe die ich per Rollen freigeben möchte oder auch sperren möchte.

    Beispiel:
    Ordner 1: „all“ (Offen für alle auch öffentlich)
    Ordner 2: „member“ (Nur für Mitglieder die eingeloggt sind In diesem Fall Subscriber)
    Ordner 3: „chef“ (Nur für die Leitung in diesem Fall Editor)
    Ordner 4: „web“ (Nur für die Administratoren und 2 weiter Subscriber)

    Ich habe bisher auch leider kein Plugin gefunden das mir dieses ermöglicht. Wichtig ist das auch der Zugriff von außen wenn der direkte Link der Datei bekannt ist nicht geöffnet werden kann sollte die Person nicht eingeloggt sein.

    habe mich schon in die gefühlt ganze htaccess Thematik eingelesen aber irgendwie nicht hundertprozentig etwas gefunden oder wenn dann nicht verstanden das dieses dafür gehen würde.

    Beste Grüße Markus

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Ich denke du suchst nach so einem Plugin:
    https://de.wordpress.org/plugins/prevent-direct-access/

    Damit kannst Du einzelne Dateien in der Mediendatenbank vor dem externen Zugriff schützen. In der kommerziellen Version kann man das auch auf Rollen-Basis erreichen.

    Thread-Starter Markus Böhm

    (@markusboehm)

    Ja so in der Art und danke für diese schnelle und sehr gute ANtwort mit dem passenden Plugin. Habe jetzt noch weitere gefunden aber leider sind die Kosten die durch diese Plugins jährlich entstehen für diese kleine Organisation zu hoch.
    Jetzt besteht eher die Frage wie muss man die .htaccess anpassen damit wir hier zu diesem gewünschten Ziel kommen würden.

    Ich selbst habe die Schreibweise der htaccess Datei in WordPress leider noch nicht verstanden.

    Die Vorgaben wie eine htaccess-Datei auszusehen haben kommen von Apache. Dort sind die Möglichkeiten hier dokumentiert: https://httpd.apache.org/docs/2.4/howto/htaccess.html

    Um deinen Wunsch mal technisch zu formulieren:
    Du möchtest beim Aufruf bestimmter Pfade nur bestimmte Rollen zulassen. Pfade zu schützen ist recht simpel. Das schwierige ist die Autorisierung für den Zugriff.

    Ein ganz einfacher Schutz würde durch folgenden Eintrag in der .htaccess-Datei möglich sein die in einem Verzeichnis liegt:

    deny from all

    Damit wäre keine einzige Datei in dem Verzeichnis für irgendjemanden per Web-Aufruf erreichbar.

    Per htaccess kann man nun einzelne IP-Adressen oder dem Apache bekannte Nutzer freigeben. Du erkennst das Dilemma vermutlich: das hat nichts mit der Anmeldung von Nutzern per WordPress zu tun. Der Apache und somit auch die htaccess-Datei kennen kein WordPress und wissen somit nicht wie man hier eine Autorisierung damit vornehmen kann.

    Das o.g. Plugin geht daher anders vor – und das müsstest Du eigentlich nachbauen. Es verhindert jegliche Zugriffe von außen (das kriegst Du auch hin). Sobald die so geschützten Dateien irgendwo verlinkt sind, wird jedoch nicht auf /wp-content/uploads/2023/11/datei.jpg verlinkt sondern auf eine PHP-Datei inkl. Angabe welche Datei angefordert wird. Diese PHP-Datei prüft, ob der Pfad stimmt und gibt die Datei nur dann zurück, wenn auch die Autorisierung stimmt. Genau so eine PHP-Datei würdest Du benötigen. Ich kenne keine fertige Datei die das ermöglicht. Ist es dir möglich das nachzubauen? Wenn nein, such dir jemanden der es für dich erledigen könnte.

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)