Support » Installation » Durch .htaccess Fehler 403 (permisson denied)

  • Hallo an alle Forenuser. Bin leider ziemlich verzweifelt und brauche eure Hilfe.

    Kurze Erklärung warum diese Frage zustande kommt. (Vielleicht ist die Antwort simpel und ich habe einfach keine Ahnung)
    – vor 7 Jahren ist mein Bruder gestorben und ich habe seine Domains übernommen. Er hatte ne kleine Werbeagentur und hat auch einige Domains.
    – Abwicklung habe ich erledigt – Kunden Domains frei gegeben usw.
    – Sein Herzblut hing aber an seinem Blog.
    – Auf Wunsch meiner Eltern und auch wegen mir sollte als Erinnerung die Seite bestehen bleiben.
    – Falls es interessiert (URL: schalkefan.de)

    Jetzt zu meiner Frage:
    Die WordPress installation ist schon ziemlich alt (3.5.1) und deswegen will und muss ich diese Updaten. Leider ist das auf dem Server nicht möglich wegen der PHP-Version und auch die SQL Version ist zu alt. Außerdem habe ich vorher nichts mit WordPress zu tun und will deswegen die WP-Installation auf eine andere Server mit anderer Domain spiegeln. (Server hat die gleiche PHP und SQL Version) Dort kann ich dann die Updates, nach upgrade der PHP und SQL Version, testen den der Blog soll weiterhin bestehen bleiben
    Habe mich viel eingelesen und es hat auch fast alles funktioniert.

    – Habe die DB kopiert und ’siteurl‘ und ‚home‘ angepasst.
    – WP Dateien auf den neunen Server kopiert
    – WP-config angepasst

    Habe dann die neue URL aufgerufen und es kam der Fehler 403. Nachdem ich die .htacces gelöscht habe funktioniert die Seite allerdings kein Link (not Found). Erstelle ich über WP eine neue .htacces (Dashboard – Permalink – Änderungen übernehmen) kommt automatisch wieder der Fehler 403.

    Habe wirklich schon alles versucht. Ich habe die Dateiattribute angepasst. Einstellungen zwischen den WordPress Installation verglichen und natürlich ganz viel gegoogelt. Ich finde aber einfach den Fehler nicht.
    Woran kann es noch liegen. DB Verbindung usw. funktioniert ja schließlich.

    Für Hilfe bin ich wirklich Dankbar. Sollten noch mehr Informationen benötigt werden einfach nachfragen.

    Danke

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
  • Hallo,
    hier der Link auf eine ähnliche Anfrage, wo du einige Lösungsansätze findest.
    Auf Grundlage der vorzüglichen Anleitung von @pixolin – (danke 😉) – habe ich vor ca. 1 Jahr eine uralte WordPress-Instanz (2.6.2) upgedatet. Das hat mit ein paar kleineren Änderungen vorzüglich funktioniert.
    Auf jeden Fall würde ich die Migration zunächst mal lokal testen. Du kannst auf deinem Computer einen lokalen Webserver einrichten, z.B. mit Laragon, Bitnami oder Local by Flywheel. Wie das im Beispiel von Laragon funktioniert, habe ich hier beschrieben.
    Viele Grüße
    Hans-Gerd

    „Digitales Erbe“ ist ein Thema, über das wir uns sehr lange austauschen könnten. Ich finde es schön, dass du dir die Mühe machst, die Website zu erhalten.

    Ich hab mir mal die Stelle aus deiner Frage rausgepickt, bei der ich eher helfen kann:

    Habe dann die neue URL aufgerufen und es kam der Fehler 403. Nachdem ich die .htacces gelöscht habe funktioniert die Seite allerdings kein Link (not Found). Erstelle ich über WP eine neue .htacces (Dashboard – Permalink – Änderungen übernehmen) kommt automatisch wieder der Fehler 403.

    Die Fehlermeldung „403 – Forbidden“ bedeutet, dass der Zugriff auf eine Datei oder ein Verzeichnis nicht erlaubt ist und dem Browser deshalb keine Informationen übermmittelt wurden.
    Meistens liegt es daran, dass in dem aufgerufenen Verzeichnis keine Index-Datei (also keine index.php, index.html, index.htm oder start.html) vorhanden ist. In diesen Fällen soll der Browser dann ein Inhaltsverzeichnis des aufgerufenen Verzeichnis auf dem Webserver angezeigt bekommen. Zumindest haben sich die Erfinder von HTML das irgendwann mal so ausgedacht. Die Funktion wird aber in den meisten Fällen durch eine Serverkonfiguration überschrieben, damit sich potentielle Angreifer nicht nach möglichen Sicherheitslücken umschauen können. Ergebnis: es kann nichts angezeigt werden und die Ausgabe des Verzeichnisses ist verboten – oder wie die Meldung sagt „Forbidden“.
    Ein anderer möglicher Grund ist, dass bei der Übertragung die Dateien einem anderen Benutzer zugewiesen wurden. Der Webserver liefert aus Sicherheitsgründen nur Dateien aus, die einem bestimmten Benutzer (meistens www-data) zugewiesen sind, kann sonst nichts anzeigen, versucht eine Ausgabe des Verzeichnisses … Rest siehe oben, Ergebnis: wieder „Forbidden“.

    Also … prüf bitte mal, ob die übertragenen Dateien im richtigen Verzeichnis liegen. Schau auch nach, ob sie dem richtigen Benutzer zugewiesen sind. (Hast du einen einfachen Webhosting-Vertrag abgeschlossen, kannst du gar nicht viel am Benutzernamen ändern. Bei einem eigenen Server aber schon. Wie das bei dir ist, kann ich nicht beurteilen.)

    WordPress verwendet so genannte Pretty Permalinks, die deshalb „pretty“ („hübsch“) sind, weil sie den Titel als Teil der URL übernehmen und nicht nur eine Datenbank-ID enthalten (https://example.com/?p=42 ist weniger aussagefähig als https://example.com/ueber-mich). Damit das funktioniert, muss bei Apache2-Webservern

    • der Webserver erlauben, dass die Serverkonfiguration mit einer .htaccess angepasst werden darf – dazu musst du, wenn das ein eigener Server ist in der Virtual-Host-Konfiguration sinngemäß einfügen
      <Directory "/var/www/html">
      allow from all
      Options -Indexes
      AllowOverride All
      </Directory>
    • das Server-Modul mod_rewrite mit a2enable rewrite aktiviert und danach der Server mit systemctl restart apache2 neu gestartet werden
    • eine .htaccess angelegt werden, die Weiterleitungsregeln enthält:
      # BEGIN WordPress
      
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      
      # END WordPress
    • im WordPress-Backend unter Einstellungen > Permalinks die Permalink-Struktur „Beitragsname“ ausgewählt werden.

    Um die ersten beiden Punkte brauchst du dich wieder nur kümmern, wenn du selber einen Server betreibst. Ohne diese Voraussetzungen sucht der Webserver wieder in (nicht vorhandenen) Verzeichnissen, darf aber keine Verzeichnis-Inhalte ausgeben und … naja, Rest siehe oben.

    Ich hab das diesmal etwas ausführlicher beschrieben und hoffe, dass ich damit nicht noch mehr Verwirrung stifte, sondern die Hintergründe etwas klarer werden, wieso du diese Fehlermeldungen bekommst.

    An ein (aus Sicherheitsüberlegungen längst überfälliges) Update würde ich erst drangehen, wenn die Website im bisherigen Zustand wieder läuft.

    Thread-Ersteller florian2606

    (@florian2606)

    Hallo und erstmal danke für die Antworten.

    zur ersten Antwort: (Hans-Gerd Gerhards)
    – Problemstellung zum verlinkten Blogeintrag ist leider eine andere. Habe mir natürlich auch alles durchgelesen konnte nur leider keine Verbindung zu meinem Problem herstellen.

    – Manuelles Update habe ich später vor allerdings auf dem Server (mit der anderen URL) weil ich das vorher definitiv testen will.

    zur zweiten Antwort (Bego Mario Garde)
    Danke für die Antwort. Leider komme ich damit auch nicht viel weiter. Ich habe mich aber Aufgrund Ihrer Antwort auf einen anderen Weg der Fehlersuche gemacht. Ich benutze keinen eigenen Server sondern Webspace von http://www.webspace4all.eu. Hier habe ich zur Administration confixx und phpmyadmin.
    Über den Besitzer der Dateien kann ich über den WEBFTP sehen. Bei der schalkefan.de (original) Seite ist der der Besitzer web12X. Bei der kopierten Seite ist der User web17X

    Die Datenbanken heißen auch dementsprechend.

    – Jetzt zu meiner Frage. Ist irgendwo bei WP hinterlegt welcher Besitzer die Dateien haben müssen.

    Ich verstehe aber auch einfach den Fehler nicht. An der .htaccess kann es doch irgendwie nicht liegen. Zum testen habe ich einfach die erzeugte .htacces auf den original Server (vorher natürlich die alte gesichert) kopiert. Das funktioniert.
    In der ursprünglichen -htacces wurde auch die htpasswd angezogen. Daran liegt es aber auch nicht weil die ja für was anderes ist.

    Ich bedanke mich aber nochmals für eure Antworten

    Thread-Ersteller florian2606

    (@florian2606)

    Noch eine weiter Frage. Warum bekomme ich die Startseite (die ersten paar Blogeinträge) ohne .htacces angezeigt aber sobald eine erzeugt wird nicht.
    In der Index PHP steht meines Erachtens auch nichts falsches drin. Das erklärt sich mir einfach nicht. Bin dafür aber glaube ich einfach in zu unwissend.

    Schau doch mal im Kundenmenü de Webhosters, welche PHP-Version aktuell genutzt wird (optimal wäre PHP 7.4, 7.3 ist auch OK) und ob sich irgendwo Einstellungen für den Webserver vornehmen lassen. Das Webserver-Modul mod_rewrite muss aktiviert sein.

    Du kannst auch mal schauen, wie sich die Website verhält, wenn du unter Einstellungen > Permalinks (zumindest vorübergehend) die Einstellung auf „Einfach“ (https://example.com/?p=123) stellst.

    Bei der schalkefan.de (original) Seite ist der der Besitzer web12X. Bei der kopierten Seite ist der User web17X

    Das sollte OK sein.

    Ist irgendwo bei WP hinterlegt welcher Besitzer die Dateien haben müssen.

    Nein. Das hat mit den Datenbankeinträgen nichts zu tun.

    An der .htaccess kann es doch irgendwie nicht liegen.

    Die .htaccess enthält Weiterleitungsregeln, die bei einem Seitenaufruf alle Informationen über die index.php abwickeln. Ohne .htaccess keine Weiterleitungsregeln, ohne Weiterleitungsregeln sucht der Webserver die Informationen an der falschen Stelle, statt das PHP-Skript in der index.php auzuführen.

    Zum testen habe ich einfach die erzeugte .htacces auf den original Server (vorher natürlich die alte gesichert) kopiert.

    Ich hatte dir eigentlich den Code für eine .htaccess zur Verfügung gestellt. Passte da etwas nicht?

    In der ursprünglichen -htacces wurde auch die htpasswd angezogen.

    Das war zum Schutz des Anmeldeformulars gegen unbefugte Zugriffe. Kann man so machen, ist auch sinnvoll, aber nicht zwingend erforderlich.

    Noch eine weiter Frage. Warum bekomme ich die Startseite (die ersten paar Blogeinträge) ohne .htacces angezeigt aber sobald eine erzeugt wird nicht.

    Wenn du eine Adresse https://example.com aufrufst, sucht der Webserver nach einer Datei index.php im Webstammverzeichnis. Die findet der Server auch auf Anhieb. Eine Weiterleitung ist nicht notwendig.
    Wenn du eine Adresse https://example.com/ueber-mich aufrufst, sucht der Webserver im Verzeichns ueber-mich nach einer Datei index.php. Die gibt es aber genauso wenig wie ein Verzeichnis ueber-mich. Deshalb wird eine Weiterleitungsregel angelegt, die dem Webserver umgangssprachlich ausgedrückt sagt „hey, such nicht im Verzeichnis, sondern ruf die Datei index.php im Web-Stammverzeichnis auf und ich kümmere mich um den Rest!“ WordPress weiss dann aufgrund der Permalink-Regeln, welchen Beitrag oder welche Seite es anzeigen soll.

    Bin dafür aber glaube ich einfach in zu unwissend.

    Das sind eigentlich alle Einsteiger. Du musst nur für dich entscheiden, wie weit du dich einarbeiten möchtest. Wenn ich ein Glas Milch trinken möchte, kaufe ich mir auch keinen Bauernhof, weil Milch bekanntlich von Kühen kommt. Ich gehe statt dessen in ein Geschäft und kaufe mir zu einem kleinen Preis die Menge, die ich benötige.
    Unter Umständen ist es sinnvoller, wenn du mal jemand auf die Website schauen lässt, der sich auskennt. Wenn es um das Wiederherstellen oder Klonen einer vorhandenen Website geht, sollte das auch nicht zu teuer werden (sicher relativ).

    Hallo @florian2606 ,

    Jetzt zu meiner Frage:
    Die WordPress installation ist schon ziemlich alt (3.5.1) und deswegen will und muss ich diese Updaten.

    Das war doch deine Frage und ich denke, dass ich mit dem Hinweis u. a. auf das Update einer uralten Version und der Anleitung von Bego die Frage wohl durchaus richtig verstanden habe. 🤔
    Viele Grüße
    Hans-Gerd

    @hage Meine „gesammelten Werke Bd. 1 und 2“ bezogen sich auf

    Habe dann die neue URL aufgerufen und es kam der Fehler 403. Nachdem ich die .htacces gelöscht habe funktioniert die Seite allerdings kein Link (not Found). Erstelle ich über WP eine neue .htacces (Dashboard – Permalink – Änderungen übernehmen) kommt automatisch wieder der Fehler 403.

    Hier ist ziemlich gut beschrieben, wie man bei diesem Fehler auf Suche geht.

    Fehler 403

    Thread-Ersteller florian2606

    (@florian2606)

    Hallo zusammen,

    ich wollte mich nochmals bei allen bedanken. Ihr habt mir wirklich alle viel weiter geholfen und habe mich durch euch in viele Punkte eingelesen.
    Leider führten alle eure Lösungsvorschläge nicht zum Erfolg und es hat mich viel Zeit gekostet allerdings auch viel wissen gebracht. Mich hat WP jetzt auch ein bisschen angefixt und ich werde mich in die Materie vertiefen.
    Ich bleibe mal bei der Analogie von Bego Mario Garde. – Ich will jetzt nicht die Biologischen Abläufe eine Kuh für die Milch Produktion kennen /verstehen aber schon wie man eine Kuh füttern muss.

    Jetzt aber zum wichtigsten. Es läuft, ich habe es geschafft. Es muss an dem Hoster bzw. Vertrag (meine Testseite ist auf einem Resseller-Account) gelegen haben. Habe jetzt noch einen Hostingvertrag bei 1blu abgeschlossen und dort funktionierte es sofort. Das ganze Clonen hat mich vielleicht 30 min gekostet.

    Nochmals Danke und ich wünsche euch allen einen schönen Sonntag.
    Bleibt gesund.

    Thread-Ersteller florian2606

    (@florian2606)

    Noch eine kurze Info.

    Ich habe jetzt auch WP auf 5.6 aktualisiert. Lief ohne Probleme.

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