1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

WP 6.x Nicht-WP Web-Site einbinden und schützen

Dieses Thema im Forum "Allgemeines" wurde erstellt von signag, 2. Juni 2024.

  1. signag

    signag Member

    Registriert seit:
    2. Juni 2024
    Beiträge:
    6
    Zustimmungen:
    0
    Hallo,
    ich nutze WordPress 6.5.3 bei STRATO.

    Auf einer Familien-Seite möchte ich einen Stammbaum zugänglich machen, der mit Family Historian 7 (https://www.family-historian.co.uk/) erstellt wurde.
    Der Zugang soll dabei nur für registrierte Benutzer möglich sein.

    Der Stammbaum liegt als Web-Struktur (HTML, JS, CSS, Medien-Dateien) in einem einzigen Verzeichnis vor (einige hundert Files).

    Da bei jeder Änderung die Web Site mit Family Historian neu generiert wird, kommt eine direkte Übernahme in WordPress nicht in Frage.
    Auch der Import des GEDCOM Files in das WP Genealogy Plugin ist nicht wirklich praktisch.

    Was ich bisher versucht habe, ist Folgendes:
    • Upload des index.html als Datei auf eine WP Seite
    • Anschließend alle anderen Dateien mit FileZilla in das gleiche ./uploads Verzeichnis hochladen
    • Dann kann ich über die WP-Seite auf die index.html zugreifen und anschließend ganz normal im Stammbaum navigieren.
      Der sieht zwar anders aus als die WP Site, aber das stört nicht.
      Einen Rück-Link zur WP Site kann ich noch einbauen.
    Das Problem ist jetzt allerdings, dass im ./uploads Verzeichnis alle Ressourcen öffentlich zugänglich sind.

    Das ./uploads Verzeichnis mittels .htaccess RewriteRule zu schützen (http://wordpress.stackexchange.com/a/37743/48165) habe ich versucht, bekomme dabei aber immer nur einen 404.

    Auch nach längerer Suche habe ich bisher leider keine andere gangbare Lösung gefunden; auch hier im Forum nicht.
    Allerdings mache ich gerade meine ersten Schritte mit WP und bin mir nicht sicher ob ich mit meiner Vorgehensweise nicht auf dem völlig falschen Dampfer bin.

    Für Rat und Unterstützung wäre ich sehr dankbar.
     
  2. threadi

    threadi Well-Known Member

    Registriert seit:
    9. Oktober 2020
    Beiträge:
    2.145
    Zustimmungen:
    426
    Lassen wir mal den Gedanken weg, dass der Zugang geschützt sein soll gäbe es für die Einbindung eigentlich nur eine iframe-Lösung. Die Dateien legst Du dann in einem Verzeichnis parallel zu WordPress ab. Und diese bindest Du per iframe ein.

    Reden wir jetzt wieder über den Zugangsschutz, ist das per iframe natürlich nicht sinnvoll machbar. Sobald jemand die Adresse rausfindet (und das geht mit 2 Klicks) ist die URL auch öffentlich erreichbar. Selbst Suchmaschinenbots könnten sie finden und indizieren, wenn du das nicht explizit verhinderst.

    Die einzige Alternative die ich noch sehe wäre eine Individualprogrammierung. Mit dieser könntest Du die HTML-Dateien einbetten in eine PHP-Umgebung die wiederum einen Zugriffsschutz über WordPress-Logins bereitstellt. Die Dateien müsstest Du in einem öffentlich nicht erreichbaren Verzeichnis ablegen, könnten also in deinem Hostingbereich auch parallel zum öffentlichen Web-Verzeichnis liegen. Wenn Du das selbst nicht programmieren kannst, findest du sicherlich jemanden in der Jobbörse hierfür: https://forum.wpde.org/forums/jobboerse.33/
     
  3. arnego2

    arnego2 Well-Known Member

    Registriert seit:
    10. Januar 2021
    Beiträge:
    642
    Zustimmungen:
    68
    .htaccess Schutz geht ohne Iframe.
    Ordner anlegen html rein damit htaccess Schutz über das Kontrolpanel einrichten.
     
  4. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.865
    Zustimmungen:
    1.830
    Du kannst z.B. alle Zugriffe auf Deinen Stammbaum Ordner über eine passende .htaccess durch ein .php Script leiten und mit PHP über die WordPress API abfragen ob/welcher WordPress Benutzer aktuell angemeldet ist und nur bei passender Anmeldung die Daten (ggf. gleich mit passendem WordPress Menu ergänzt) ausliefern. Die Möglichkeiten sind endlos, man braucht nur etwas Programmiererfahrung mit PHP, WordPress und Rewrite Regeln.
     
  5. signag

    signag Member

    Registriert seit:
    2. Juni 2024
    Beiträge:
    6
    Zustimmungen:
    0
    Danke für das Feedback.
    Mein Ansatz ist eigentlich auch der über .htaccess.

    Ich habe in die .htaccess folgende Zeilen vor dem WordPress-generierten Teil eingefügt:
    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

    Als dl-file.php habe ich die Vorlage von https://gist.github.com/hakre/1552239 genommen.
    Darin wird zunächst geprüft, ob ein User eingeloggt ist und wenn nicht, wird auf den Login-Dialog umgeleitet.

    Die erzwungene Umleitung auf den Login-Dialog funktioniert auch, aber nach erfolgreicher Anmeldung gibt es einen "Not found" Fehler beim Zugriff auf die gewünschte Datei.

    Ich wollte das dann debuggen und bin nach der Anleitung https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/ vorgegangen:
    In wp-config.php:
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );
    define( 'SCRIPT_DEBUG', true );

    Habe sicherheitshalber auch noch ein debug.log in wp-content angelegt.

    Aber es wurden keine debug-Einträge erzeugt.
    Was mache ich da falsch?
     
  6. threadi

    threadi Well-Known Member

    Registriert seit:
    9. Oktober 2020
    Beiträge:
    2.145
    Zustimmungen:
    426
    Vor

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    fehlt

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Schau per access.log nach wohin der Request geht. Im error.log müsste auch etwas zu sehen sein falls es schief geht. Das Debugging in WordPress zu aktivieren bringt hierbei gar nichts, da die Fehler eventuell schon lange davor auftreten und WP nie erreichen.

    Wenn Du nginx statt Apache hast, geht .htaccess jedoch ohnehin nicht. Dort müsste das völlig anders konfiguriert werden.
     
  7. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.865
    Zustimmungen:
    1.830
    Poste Deinen ganzen .htaccess Block. Und ergänzend falls unklar, man sollte nichts manuell direkt in den WordPress Block einfügen...
     
  8. signag

    signag Member

    Registriert seit:
    2. Juni 2024
    Beiträge:
    6
    Zustimmungen:
    0
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  9. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.865
    Zustimmungen:
    1.830
    Ergänze die RewriteBase Zeile ähnlich wie im WordPress Block. Ändert das etwas am Verhalten? Und hast Du auch die Kommentare zu Deinem PHP Script gelesen?

    Generell solltest Du nur Deinen Stammbaum Ordner durch das PHP Script leiten, nicht auch alles andere was im WordPress uploads Ordner abgelegt wird.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden