WordPress gibt mir 404 Seite nicht für alle Seiten außer der Homepage gefunden

115

Plötzlich gehe ich zu meiner WordPress-Website und alle Seiten geben mir eine 404-Seite, die nicht gefunden wurde. Ich gehe davon aus, dass das Problem in der Permalink-Struktur liegt, von der ich schwören könnte, dass ich sie nicht berührt habe. Die Permalink-Einstellung ist "Monat und Name".

Ich habe ähnliche Fälle dieses Problems online recherchiert und vieles hat mit der .htaccessDatei zu tun ? Ich habe versucht zu finden, aber ich kann nicht. Vielleicht wurde es irgendwie gelöscht? Wo soll es sich befinden?

Anregungen sind hilfreich

und natürlich kann ich versteckte Dateien sehen.

Adam
quelle
Schlagen Sie vor, dies auch auf wordpress.stackexchange.com zu erfragen .
James Wiseman

Antworten:

95

.htaccess ist eine versteckte Datei, daher müssen Sie alle Dateien so einstellen, dass sie in Ihrem FTP sichtbar sind.

Ich schlage vor, dass Sie Ihre Permalink-Struktur auf den Standardwert zurücksetzen (? P = ID), damit Sie sicherstellen, dass .htaccess das Problem ist.

Danach können Sie einfach die Struktur "Monat und Name" erneut festlegen und prüfen, ob sie funktioniert.

PS: Hast du ein Upgrade auf 3.1 durchgeführt? Ich habe in diesem Fall einige Leute mit Plugin-Problemen gesehen.

Rochester Oliveira
quelle
1
Ja, ich habe versteckte Dateien gezeigt. Ich habe von Standard zu Perma hin und her gewechselt und es funktioniert standardmäßig. Aktualisiert sich WordPress auch selbst oder so? Ich stelle fest, dass ich beim Anmelden eine neue Admin-Taskleiste auf meiner Website habe, die ich vorher nicht hatte. Ich weiß nicht, wie es dahin gekommen ist.
Adam
Jemand hat fälschlicherweise auf 3.1 aktualisiert, so dass es zu einem Konflikt mit einem Plugin kam
Adam
1
Das Fehlen .htaccesskönnte auch zu diesem Problem führen, unabhängig davon, ob Sie den Permalink korrigieren. Überprüfen Sie dies zuerst, nicht versteckt oder fehlend
Osify
1
Melden Sie sich einfach beim WordPress-Administrator an und speichern Sie die Parmalinks erneut. Dadurch wird eine .htaccess-Datei generiert oder die vorhandene aktualisiert.
Keyur Patel
Ich habe versucht, admin zu verwenden und die .htaccess-Datei manuell zu aktualisieren, aber immer noch das gleiche Problem. Deaktivieren Sie auch das Plugin, aber beheben Sie das Permalink-Problem nicht.
Jaymin
56

Grundsätzlich sollte die .htaccess-Datei vorhanden sein und die httpd.conf sollte korrekt sein.

In meinem Fall habe ich die Datei /etc/apache2/apache2.conf im Abschnitt geändert:

<Directory "/var/www/html">

Zeile geändert ist:

AllowOverride None

zu

AllowOverride All

Und starten Sie den Webserver mit neu

systemctl restart apache2
Georgeos
quelle
1
danke, das hat geholfen. In meinem Fall fehlte die Einstellung AllowOverride.
Lappen
1
Das hat es auch für mich behoben. Ich benutze Vagrant Scotchbox für das, was es wert ist.
Matt Kaye
2
Dies ist fast immer das Problem. Sollte die beste Antwort sein.
Noel Baron
Dies korrigierte das Problem für mich - Sollte die akzeptierte Antwort sein
Charles
52

Dass Problem zu beheben ist sehr einfach , wenn Sie wurde permalinks anders als die Verwendung von defaultwie Day and name, Month and name, Numeric, Post nameoder Custom Structure, Sie müssen nur

Melden Sie sich in Ihrem Administrationsbereich an: Dies Settings > Permalinkssollte sein:http://yoursite.com/wp-admin/options-permalink.php

Wählen Sie die DefaultPermalink-Einstellung und speichern Sie die Änderungen

Dann können Sie es wieder auf Ihre andere vorherige Permalink-Auswahl zurücksetzen oder es behalten, wie Sie es defaultwünschen

Beachten Sie, dass dieses Problem auftreten kann, wenn Sie Ihre Site von einer Domain oder einem Standort auf eine andere verschieben.

Usama Sulaiman
quelle
1
Dies hat mir etwas geholfen, ich hatte einige Datenbankfehler und danach waren alle meine Seiten 404. Durch Umschalten der Permalink-Option auf eine andere Option (z. B. normal) und dann zurück auf die Standardoption wurden alle meine Links behoben!
PaulBGD
Freut mich das
2
Perfekte Antwort +100
Handiansom
Wie kann ich zur Standardeinstellung für Permalink zurückkehren, wenn sie überhaupt mysite.com/wp-adminnicht funktioniert?
J86
Perfekte Antwort +10086
Aflext
29

Wenn das Standardverhalten ( example.com/?p=42) funktioniert, sollten Sie:

  • Wechseln Sie zu Ihrem bevorzugten Permalink-Stil: Admin: Settings > Permalinksund klicken Sie auf Speichern. Irgendwann behebt es das Problem. Wenn nicht:
  • Stellen Sie /path/to/wordpress/.htaccesssicher, dass die Datei geändert wurde und jetzt die Zeile enthält RewriteEngine On. Wenn die Zeile nicht enthalten ist, handelt es sich um ein Problem mit den Wordpress-Berechtigungen.
  • Stellen Sie sicher, dass das Modul 'Umschreiben' geladen ist: Erstellen Sie eine PHP-Datei mit

    <?php
      phpinfo()
    ?>

    Öffnen Sie es im Browser und suchen Sie nach mod_rewrite. Es sollte sich im Abschnitt 'Geladene Module' befinden. Wenn dies nicht der Fall ist, aktivieren Sie es - index.htmlDetails finden Sie in Ihrer Apache-Standarddatei - in Ubuntu tun Sie dies mit dem Helfer a2enmod.

  • Stellen Sie sicher, dass der Apache-Server die .htaccessDatei betrachtet. offen httpd.conf- oder es ist Ubuntus Alternative /etc/apache2/apache2.conf. Darin sollten Sie so etwas haben

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
  • Vergessen Sie nach diesen Änderungen nicht, Ihren Apache-Server neu zu starten. sudo service apache2 restart

tsvikas
quelle
20

WENN all dies nicht funktioniert, ist Ihr .htaccess korrekt und der Permalinks-Trick hat nicht funktioniert. Möglicherweise haben Sie Ihren Apache2-Rewite-Mod nicht aktiviert .

Ich habe dies ausgeführt und mein Problem wurde gelöst:

 sudo a2enmod rewrite 
David Valenza
quelle
Suchen Sie nach in mod_rewritein phpinfo();page, um zu überprüfen, ob Sie aktiviert haben. Es ist in Loaded Modulesofapache2
vanduc1102
9

Gehen Sie in der WordPress-Administrationsoberfläche wie folgt vor:

  1. Gehen Sie zur Administratoreinstellung

  2. Klicken Sie auf Permalink und wählen Sie den Postnamen im Optionsfeld.

  3. Scrollen Sie nach unten und Sie werden .htaccessCode wie hier sehen.

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
  4. Kopieren Sie den Code und fügen Sie ihn in die .htaccessDatei ein.
Mahesh singh chouhan
quelle
1
Wo finde ich das? In Permalinks gibt es nichts Vergleichbares.
Boris_yo
@ Boris_yo Soweit ich weiß, werden die Regeln nur angezeigt, wenn Ihre htaccessDatei notbeschreibbar ist. Wenn es WordPress ist, wird es einfach selbst geschrieben ...
Obmerk Kronen
1
Diese Antwort ist fantastisch! und werde nie davon erfahren, wenn nicht WP unter Linux verwendet wird. Vielen Dank
Mayeenul Islam
7

Dieser Fehler wird verursacht, weil der Mod zum Umschreiben im Apache httpd.conf-Dokument deaktiviert wurde. Kommentieren Sie ihn einfach aus und genießen Sie die SEO-freundlichen Permalinks

Asif Khan
quelle
4
  • Überprüfen Sie, ob das Verzeichnis auf .htaccess korrekt ist
  • Überprüfen Sie, ob die Felder "siteurl" und "home" korrekt sind
José Carlos
quelle
1
Für mich war das Zuhause das Problem. Ich repariere es und alles wieder an die Arbeit. Obrithankyou José Carlos.
Tiago Gouvêa
4

Wir hatten das gleiche Problem und lösten es, indem wir das error.log unseres virtuellen Hosts überprüften. Wir haben die folgende Nachricht gefunden:

AH00670: Die Optionen FollowSymLinks und SymLinksIfOwnerMatch sind beide deaktiviert, daher ist die RewriteRule-Direktive aufgrund ihrer ähnlichen Fähigkeit, Verzeichnisbeschränkungen zu umgehen, ebenfalls verboten: / srv / www / htdocs / wp-intranet /

Die Lösung bestand darin, Options Allund AllowOverride Allin unserer virtuellen Host-Konfiguration.

Schwarz
quelle
3

Wenn Sie FTP-Zugang zu Ihrem Konto haben:

Melden Sie sich zunächst bei Ihrem wp-admin an und gehen Sie zu Einstellungen> Permalinks

Sie sollten unten etwas sehen, das sagt:

"Wenn Ihre .htaccess-Datei beschreibbar wäre, könnten wir dies automatisch tun, aber es ist nicht so, dass dies die mod_rewrite-Regeln sind, die Sie in Ihrer .htaccess-Datei haben sollten. Klicken Sie in das Feld und drücken Sie STRG + a, um alle auszuwählen."

Wenn dies zutrifft, gehen Sie wie folgt vor:

  1. Gehen Sie zu den Einstellungen für Ihren FTP-Client und stellen Sie sicher, dass versteckte Dateien angezeigt werden (abhängig von Ihrem FTP-Client). Wenn Sie dies nicht tun, können Sie Ihre htaccess-Datei nicht finden

  2. Wechseln Sie in den Ordner, in dem sich Ihre Verzeichnisse wp-admin, wp-content und wp-includes befinden. Suchen Sie nach der .htaccess-Datei. Wenn vorhanden, fahren Sie mit Schritt 4 fort

  3. Wenn es nicht vorhanden ist, erstellen Sie in Ihrem FTP-Programm eine neue leere Datei mit dem Namen .htaccess

  4. Ändern Sie das CHMOD für Ihre .htaccess-Datei in 666 (Ihre Präferenz, wie Sie dies tun möchten)

  5. Gehen Sie zurück zu Ihrer Permalinks-Seite und bearbeiten Sie die gewünschte Linkstruktur. Problem sollte gelöst sein!

  6. Stellen Sie sicher, dass Sie den chmod der htaccess-Datei wieder auf 644 ändern, nachdem Sie fertig sind.

Hatte gerade das gleiche Problem und es schien es sofort zu beheben! Viel Glück!

JEFF B.
quelle
"mod_rewrite" das war das problem, ich habe vergessen es zu aktivieren! Danke :)
Chemaclass
3

Meistens wird dieses Problem behoben, indem Sie einfach die Seite Einstellungen -> Permalink im WordPress-Administrator aufrufen und auf Speichern klicken (wie bereits in mehreren anderen Antworten erwähnt). Wenn auf diese Seite zugegriffen wird, schreibt WordPress die Anweisungen in der .htaccessDatei neu, wodurch das Problem auf magische Weise behoben wird. Das Problem tritt häufig nach dem Verschieben einer Site auf (die Site bricht ab, weil die Site .htaccesszurückgelassen wird oder die Einstellungen aktualisiert werden müssen).

Wenn WordPress nicht über die richtigen Berechtigungen zum Schreiben der .htaccessDatei verfügt, wird oben auf der Seite ein Hinweis und unten weitere Anweisungen angezeigt, wenn die Einstellungen gespeichert werden. In diesem Fall müssen Sie die .htaccessDatei selbst bearbeiten oder besser die Berechtigungen für diese Datei korrigieren. Die Datei befindet sich im Stammverzeichnis der WordPress-Installation. cdin das Verzeichnis und sudo chmod 644 .htaccess. Möglicherweise möchten Sie auch überprüfen, ob die Datei zur richtigen Gruppe gehört, und die erforderlichen Änderungen mit vornehmen chown. Fragen Sie Ihren Hosting-Anbieter, wenn Sie nicht wissen, wie das geht.

Wenn Sie Shared Hosting verwenden, ist dies wahrscheinlich alles, was Sie tun können. Wenn Sie das Problem weiterhin haben, können Sie sich an den Support Ihres Hosting-Anbieters wenden. .htaccessStellen Sie andernfalls sicher, dass die Verwendung von Dateien auf dem Server aktiviert ist, wie bereits von @georgeos vorgeschlagen. Beachten Sie, dass dies httpd.confnicht immer verwendet wird ( Ubuntu zeigt an, dass es veraltet ist, aber die offiziellen Apache-Dokumente sagen immer noch, dass es häufig die Hauptkonfigurationsdatei ist ). /etc/httpd/conf/httpd.confund /etc/apache2/apache2.confscheinen die häufigsten Orte für diese Datei zu sein. Suchen Sie normalerweise den Block für den öffentlichen Ordner <Directory /var/www/>und stellen Sie sicher, dass die AllowOverrideDirektive auf gesetzt ist All. Wenn dies festgelegt ist, Nonewird Ihre .htaccessDatei vom Server einfach ignoriert.

mrtnmgs
quelle
2

Möglicherweise ist .htaccess in den Webhost-Einstellungen nicht zulässig. Die Einstellung auf Standard-Permalinks würde in diesem Fall funktionieren.

Fanky
quelle
1

Fall 1: - Lassen Sie uns überlegen, ob Sie eine Site von einem Hosting auf ein anderes Hosting migrieren, wenn Sie diese Art von Problem sehen.

Lösung: - Gehen Sie einfach zum alten .htaccess-Dateicode der Serverkopie und fügen Sie ihn in die neue .htaccess-Serverdatei ein. 99% wird es funktionieren.

Navruk
quelle
0

Ich habe das gleiche Problem und so entferne ich den Apache und mache es erneut und das Problem wurde gelöst.

boomz
quelle
0

Navigieren Sie einfach in Ihrem Dashboard zu Einstellungen-> Permalink und dann zuletzt zur Schaltfläche Änderungen speichern . \

Deepak Sharma
quelle
0

Ich habe gerade den Permalink in 'Monat und Tag' aller Beiträge geändert, indem ich auf> Permalink gesetzt habe.

Jetzt sind alle Beiträge offen und funktionieren einwandfrei.

Wieder habe ich alle Beiträge in den eigentlichen Permalink umbenannt. Es funktioniert wieder gut.

Diese Methode hat bei mir funktioniert :-)

Shani Deshwal
quelle
0

Für Nginx-Benutzer

Verwenden Sie Folgendes in Ihrer conf-Datei für Ihre Site (normalerweise /etc/nginx/sites-available/example.com)

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

Dadurch werden alle Permalink-Anforderungen an index.php mit einer URI-Zeichenfolge und den angegebenen Argumenten übergeben. Führen Sie eine Aktion aus systemctl reload nginx, um die Änderungen anzuzeigen, und Ihre Links, die nicht zur Startseite gehören, sollten geladen werden.

ABCTaylor
quelle
0

Bevor Sie versuchen, Änderungen an der Permalink- oder Serverkonfiguration vorzunehmen, überprüfen Sie bitte Ihre .htaccess-Datei. Dies ist meistens ein beschädigtes oder leeres Problem mit der .htaccess-Datei. Setzen Sie die htaccess-Datei auf die Standardeinstellung zurück

# 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
Mustafa Sabir
quelle
0

Nach 2 langen Tagen bestand die Lösung darin options +FollowSymLinks, oben in meine .htaccessDatei einzufügen.

Ahmad Ali
quelle
-1

Ich hatte dieses Problem vor nicht allzu langer Zeit. Ich hatte meinen Permalink auf den Standard zurückgesetzt oder ihn einfach gespeichert, Themes / Core auf (4.7.4) / Plugins aktualisiert, alle Plugins deaktiviert, auf Standardthema umgestellt, Datenbank optimiert, .htaccess ist bereits Standard, überprüfte Dateiberechtigungen, mod_rewrite ist aktiviert .

Bisher funktioniert nichts, was funktioniert sind die Beiträge, neue Seite, die / Kontaktseite AUSSER für alte Seiten.

Grundsätzlich sind die Seiten / URLs, die nicht funktionieren ,:

/breeding
/training
/training/*
/breeding/*

Letztendlich habe ich diese Dateien im Stammordner gefunden:

/breeding.php und /training.php

Ich habe beide Dateien umbenannt und die obigen Seiten haben funktioniert.

Loreto Gabawa Jr.
quelle