WordPress Apache Permalinks funktionieren nicht (Fehler 404)
Lesezeit: 4 Minuten
Sergej Tscherepanow
Ich habe WordPress auf meiner Apache2-Server-Site installiert, aber alle Permalinks funktionieren nicht (404 nicht gefunden). Meine .htaccess-Datei wurde von wp generiert
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Meine conf-Datei für diese Seite:
<Directory /home/sergey/siteName>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
nichts von diesen Antworten hilft mir nicht
Vielen Dank.
AKTUALISIERT:
Danke an Justin Iurmans Kommentar. Das Setzen von AllowOverride All in meiner conf löst das Problem 🙂
Erstens, hast du mod_rewrite aktiviert ? Dann haben Sie a definiert RewriteBase Sie brauchen also keinen führenden Schrägstrich in Ihrem zweiten RewriteRule Vor index.php. Endlich ändern AllowOverride None durch AllowOverride All in deiner conf
– Justin Iurman
30. April 2014 um 12:34 Uhr
In einem solchen Fall ist auch die Ausgabe Ihrer Apache-Error-Logs für diese Domain hilfreich. Darüber hinaus können Sie die Protokollierung für das Umschreiben aktivieren. httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog Die Ausgabe aus den Protokollen ist wahrscheinlich hilfreich – wenn Sie es nicht selbst herausfinden können, fügen Sie die Ausgabe aus den Protokollen in die Frage ein.
– meberhard
30. April 2014 um 12:36 Uhr
So erhalten Sie WordPress-Permalinks / hübsche Links, damit sie in Ubuntu 10.10 mit Apache2 funktionieren:
Das sollte übrigens auch in Ubuntu 10.04 so sein, aber ich habe es dort auch nicht wirklich getestet.
Erstellen Sie manuell eine „.htaccess“-Datei und speichern Sie sie in Ihrem WordPress-Hauptverzeichnis. (Dies ist diejenige mit den Ordnern wp-admin, wp-includes und wp-content.)
Gehen Sie zum Ubuntu-Terminal und geben Sie Folgendes ein:
Sie sollten eine Zeile sehen, die besagt, dass der Modus der Datei beibehalten wurde.
Als nächstes müssen wir WordPress erlauben, in die .htaccess-Datei zu schreiben, indem wir mod_write im Apache2-Server aktivieren. Geben Sie im Terminal Folgendes ein:
sudo a2enmod umschreiben
Sie sollten eine Zeile sehen, die besagt, dass das Umschreiben von Mods aktiviert wird, und Sie daran erinnert, den Webserver neu zu starten
Also lass uns das tun. Starten Sie den Webserver Apache2 neu, damit die Änderungen wirksam werden, indem Sie Folgendes eingeben:
sudo /etc/init.d/apache2 neu starten
Wir sind alle mit der Eingabeaufforderung der Befehlszeile fertig; Sie können das Befehlszeilenfenster jetzt schließen.
Gehen Sie in Ihr WordPress-Admin-Panel (dh http://ihreDomain/wp-admin). Gehen Sie zu Einstellungen –> Permalinks und wählen Sie das gewünschte Permalink-Format aus. Klicken Sie auf die Schaltfläche “Änderungen speichern”.
ERLEDIGT! Gehen Sie zu Ihrer Website und überprüfen Sie eine beliebige Seite (außer Ihrer Startseite), um sicherzustellen, dass alles wie erwartet funktioniert.
Hoffe, das hilft jemandem.
Funktioniert bei mir! Vielen Dank! 🙂
– Tarsis Azevedo
21. Oktober 2016 um 23:38 Uhr
Da ich bereits abgestimmt habe, kann ich nicht mehr stimmen. Aber deine Antwort hat mich mehrfach gerettet. Danke vielmals 🙂
– ashish.gd
23. Oktober 2019 um 14:38 Uhr
Vielen Dank, @ashish.gd, Sie können diese Antwort mit verwandten Fragen teilen. es hilft mehr Menschen;
– Nmk
4. November 2019 um 9:23 Uhr
Funktioniert bei mir nicht. Ich habe alle Schritte ausgeführt (doppelt überprüfte chown- und chmod-Parameter), wenn ich Permalinks auf ?p=id umschalte, funktioniert es (ich weiß, dies sind keine Permalinks, sondern Abfragezeichenfolgen), nachdem ich jedes Mal in den von mir ausgegebenen Permalinks-Einstellungen auf Speichern geklickt habe cat .htaccess um die Änderung zu beobachten und tatsächlich ändert WordPress die Datei …
– Marecki
1. Dezember 2020 um 17:10 Uhr
Nachdem Sie die von nmk geschriebenen Schritte befolgt haben,
sudo vim /etc/apache2/apache2.conf
Suchen Sie den Eintrag <Directory /var/www/html>
und ändern AllowOverride None
zu AllowOverride All
Speichern Sie dann die Datei (: wq) und starten Sie den Apache2-Dienst an der Eingabeaufforderung neu
sudo /etc/init.d/apache2 neu starten
Dies hat das Problem für mich gelöst!
– konnovdev
5. November 2021 um 6:44 Uhr
Öffnen Sie die Datei /etc/apache2/apache2.conf.
Ändern Sie AllowOverride vom Wert „none“ in „All“, wie unten angegeben
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
3. Aktivieren Sie mod_rewrite
sudo a2enmod rewrite
4.Starten Sie den Apache-Server neu, damit diese Änderungen wirksam werden.
sudo apachectl restart
14031700cookie-checkWordPress Apache Permalinks funktionieren nicht (Fehler 404)yes
Erstens, hast du
mod_rewrite
aktiviert ? Dann haben Sie a definiertRewriteBase
Sie brauchen also keinen führenden Schrägstrich in Ihrem zweitenRewriteRule
Vorindex.php
. Endlich ändernAllowOverride None
durchAllowOverride All
in deiner conf– Justin Iurman
30. April 2014 um 12:34 Uhr
In einem solchen Fall ist auch die Ausgabe Ihrer Apache-Error-Logs für diese Domain hilfreich. Darüber hinaus können Sie die Protokollierung für das Umschreiben aktivieren. httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog Die Ausgabe aus den Protokollen ist wahrscheinlich hilfreich – wenn Sie es nicht selbst herausfinden können, fügen Sie die Ausgabe aus den Protokollen in die Frage ein.
– meberhard
30. April 2014 um 12:36 Uhr