WordPress: htaccess & 403 Forbidden Fehlermeldung

403_Forbidden_acess_server-1.pngIch habe in einem neuen Hosting Paket gerade ein frisches WordPress aufgesetzt. Erst ging alles recht flott, aber dann wollte ich die ‚hübschen‘ Permalinks (sprechende URLs) wie gewohnt einschalten. WordPress generiert nach Möglichkeit die benötigte .htaccess Datei selbst. Ansonsten wird einem angezeigt, was man bitte in die selbst anzulegende .htaccess Datei schreiben soll.

In meinem Fall konnte WordPress die .htaccess selbst generieren. Allerdings mit dem Ergebnis, dass jegliche Zugriffe auf die Website mit einem 403 „Forbidden – You don’t have permission to access / on this server“ Fehler quittiert wurden. Erst nach Löschen der .htaccess und dem Zurückstellen auf die Basis Permalinkstruktur funktionierte wieder alles.

Nach kurzer Recherche erfuhr ich, dass eine der häufigsten Ursache für dieses Problem, das Fehlen des heute eigentlich schon zum Web Hosting Standard gehörendem mod_rewrite Modul des Apache Servers gehört. Und tatsächlich bei diesem Hoster musste man erst die Aktivierung des mod_rewrite Moduls beantragen. Also geschwind den Support angeschrieben und um die Aktivierung gebeten. Dieser antwortete recht zügig, dass mod_rewrite in ca. 10 Minuten aktiv sein werde.

htaccess_dateirechte_600-1.pngNach einer kurzen Pause spuckte der Server immer noch den „Forbidden 403“ Fehler bei der Aktivierung der schicken Permalinks aus. Nach einigem hin- und her mit dem Support und dem wohl heutzutage unvermeidlichen Unfug, der einem in solchen Problemsituationen erzählt wird (die .htaccess funktioniere nur, wenn Sie in dem über der WordPress Installation liegendem Ordner liegt 😕 ).

htaccess_dateirechte_644.pngDes Rätsels Lösung: die .htaccess Datei hatte nach der Erstellung durch WordPress nur 600er Dateirechte erhalten und blockierte so den Zugriff. Nach einer Änderung der Dateirechte auf 644 funktionierte es dann auch mit den schniecken Permalinks.

Als recht hilfreich erwiesen sich zwei Foren in denen ich einige Informationen sammeln konnte. Einmal das Server Support Forum und dann entdeckte ich zu meiner Überraschung, dass es eine sehr umfrangreiche Website gibt, die sich ausschließlich auf das eine Thema fokussiert: modrewrite.de Community Forum.

Update Mai 2016: Index Seiten Problem

Es ist mittlerweile einige Zeit vergangen und nun habe ich vor kurzem noch eine neue Lernerfahrung bzgl. der 403 Forbidden Fehlermeldung machen dürfen. Beim Relaunch unserer Firmenhomepage, nachdem wir von Drupal auf WordPress umgestiegen sind, tauchte nach dem Upload der lokal entwickelten Dateien ebenfalls das alte Problem wieder auf.

Was mich bei der näheren Analyse sehr irritierte war, dass ich einzelnene Dateien wie z.B. Bilder aufrufen konnte. Ich konnte sogar die wp-login.php aufrufen, aber sobald ich keine spezifische Dateiendung in der URL hatte, kam es zur altbekannten 403 Fehlermeldung.

Lösung: Es gibt beim meinem Hoster in den Domaineinstellungen die Option „Index Seite“ mit der festgelegt wird nach welchen Dateien der Server sucht, falls nur ein Ordner und keine Datei angegeben wird. Normalerweise ist die Standardeinstellung eigentlich immer so, dass nach index.html und index.php gesucht wird und falls eine entsprechende Datei gefunden wird, wird diese angezeigt.

403 Forbidden Problem: Fehlende Indexangabe

Aus mir unerfindlichen Gründen war dort diesmal nur „index.html“ eingetragen und da bei WordPress in den Ordnern immer nur index.php Dateien liegen, fand der Server nichts passendes und gab eine 403-Fehlermeldung aus. Nachdem ich dort „index.php“ ergänzt hatte, funktionierte alles problemlos. Aber da muss man auch erst einmal drauf kommen.

24 Gedanken zu „WordPress: htaccess & 403 Forbidden Fehlermeldung“

  1. Hi,

    super Posting, hat mich auf die richtige Spur gebracht. Wenn es bei mir auch leicht anders war. Die Permissions waren bei mir wohl korrekt, allerdings fehlte in der .htaccess noch die Zeile

    Options FollowSymlinks

    Danach liefs auch bei mir.

    Gruß

    Sarek

  2. Wollte die Permalinks mit der Struktur “category/postname” machen. Dann kommt eben dieser Satz… “Wenn htaccess beschreibbar wäre…”. Da hab ich dieses Stück Code in meine htaccess eingefügt und versucht nochmal Posting, Category oder Page aufzurufen… ist aber immernoch kaputt (404).

    PS: Eine _.htaccess gibts bei mir unter „publichtml“ und mein Blog selbst liegt dann nochmal in seinem eigenen Unterordner… Ich soll da keine htaccess IM WordPress-Ordner anlegen oder?!
    Ach und meine htaccess hat von Naturaus nur nen _ (nen Unterstrich) als Dateiname.

    Ich hab auch mal alle möglichen Rechte von htaccess auf aktiv gesetzt. Bringt aber auch nix!

    Weiß jemand jetzt noch nen Rat, woran’s liegen könnte?

  3. Hmmm, zunächst mal muss die .htaccess Datei auch genau so benannt sein. Ein Unterstrich zu Beginn bewirkt meines Wissens, dass die Datei vom Server nicht berücksichtigt wird. Ändere das bitte mittels FTP-Programm auf ‚.htaccess‘. Die .htaccess würde ich auch in den WordPress-Ordner legen. Normalerweise gilt das was in der .htaccess steht für den Ordner in dem diese liegt und alle Unterordner – außer es gibt weitere .htaccess Dateien in den Unterordnern (z.B. legt das WP-Super Cache Plugin so etwas an).

    Es gibt leider auch einige Web Space Anbieter, die das für die Umschreibung benötigte mod_rewrite Modul des Apache Web Servers erst auf Anfrage freischalten. Das wäre auch noch eine Möglichkeit.

  4. Hallo,
    habe Eure Korrespondenz mit Interesse und Ehrfurcht gelesen. Bestimmt habt Ihr Wissen, was ich in Lichtjahren nicht haben werde.
    Auch ich habe das Problem mit “403 Forbidden”!
    Ich wünsche Euch, daß Ihr nun klar kommt mit diesem Problem, aber ich kann aus so viel fachlichem Hin und Her nichts entnehmen, was mich weiterbringen könnte.
    Das ist nicht böse gemeint – nur scheint mir mit meinen kargen Wissen, daß ich kaum eine Chance hab diese “blöde” Meldung (403…..) i. d. Griff zu kriegen.
    Gruß

  5. Wie wäre es denn, wenn du Dein Glück mit einer genaueren Beschreibung des Problems in einem der im Artikel erwähnten Foren versuchst? Da wird auch nicht Experten geholfen 😉 .

  6. Danke für den Tipp. Habe ein ähnliches Problem mit gleichem Ergebnis.
    Bei mir scheint das Problem an dem GoogleAnalytics-Kampagnen Tracking-Code zu liegen, der das über die URL mit nimmt. Ich meine dieses ?utm_source=XYZ&utm_campaign=ABCusw. Mein Problem ist hierbei, dass dann auch kein anderer Klick auf einen Link funktioniert, sondern verboten wird. Ebenso das Absenden von Kommentaren etc.

  7. Das ist einfach ein Krampf… mod_rewrite habe ich schon in weiser Voraussicht eingeschaltet. Trotz allem kam der 403 Error. Dann habe ich halt mal gegoogelt und diesen hilfreichen Beitrag hier gefunden.
    Habe die Dateirechte der .htaccess gecheckt aber die waren schon bei 644 -.-
    Also: mod_rewrite an, .htaccess hat 644 und FollowSymlinks führt zu einem 500 Error.
    Habe alle paar Monate so einen Stress mit mod_rewrite und sitze dann Stunden bis ich rausgefunden habe woran es diesmal liegt… Naja aber danke trotzdem für den Beitrag.

  8. Meine Lösung (vllt hilft sie ja jemandem):
    Ich hatte mod_rewrite nachträglich in Confixx unter „Kunden >> Benutzer ändern >> Leistungen ändern“ aktiviert. Wie ich aber später rausgefunden habe, aktiviert Confixx mod_rewrite gar nicht, wenn man es an dieser Stelle aktiviert! (scheint ein Bug zu sein)
    Erst als ich es über „Kunden >> Httpd Spezial“ aktiviert habe, hat es endlich funktioniert.

  9. Danke für die Anleitung. Ich hatte gar keine .htaccess bei mir. Eventuell gelöscht. Nachdem ich Permalinks aktiviert habe mußte ich etwas per Hand in die .htaccess kopieren. Anschließend lief es immer noch nicht. Es hat etwas gefällt. Also für alle die per Google auf dieser Seite landen. Folgender Eintrag muss in die .htaccess !

    RewriteEngine On
    RewriteBase /wp_mu/
    #uploaded files
    RewriteRule ^(.*/)?files/$ index.php [L]
    RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . – [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
    RewriteRule . index.php [L]

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

  10. Vielen Dank, Nils,

    dein Beitrag hat mir super geholfen, den Fehler auch bei mir zu finden. Habe WordPress noch ganz neu und wusste echt nicht, was ich mit der Fehlermeldung anfangen sollte, nachdem ich die Permalinkstruktur geändert hatte.

    Nun läuft es wieder! Danke! Matthias

  11. Vielen Dank an diesen Post.

    Hatte das selbe Problem. Zum Glück konnte ich mod_rewrite bei meinem Serverhoster selbst einschalten. Dann ging alles.
    Super Anleitung!
    *DAUMEN HOCH*

  12. Nils, tausend Dank für diesen Artikel! Mod-Rewrite hat bei mir das Problem gelöst (Alfahosting). Wäre ich nie drauf gekommen… Weiter so 🙂

  13. Danke Margit!

    Ich freue mich schon, wenn es jemanden hilft. Mir selbst haben schon so viele Artikel von anderen weiter geholfen, dass ich froh bin ein bisschen ins Netz zurück geben zu können.

    1. Lösche mal die htaccess, dann ist deine Website hopps aber ganz schnell, da hilft auch kein Backup mehr, sondern nur eine neue vom Hoster installiert.

  14. Nach Jahren immer noch so aktuell. Kurzen Moment war ich schon am verzweifeln, aber zum Glück die Seite noch entdeckt. Nach Aktivierung von mod_rewrite, ist meine Seite auch wieder erreichbar. Vielen Dank 🙂

  15. Hallo,

    erstaunlich, wie erfolgreich die Kommentatoren bei der Fehlerbehebung immer sind. Ich habe hier keine Lösung für meinen 403 Fehler gefunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.