it-swarm.com.de

WordPress gibt mir eine 404-Seite, die nicht für alle Seiten außer der Homepage gefunden wurde

Plötzlich gehe ich auf meine WordPress-Website und auf allen Seiten bekomme ich eine 404-Seite, die nicht gefunden wurde. Ich gehe davon aus, dass das Problem in der Permalink-Struktur liegt, die ich schwören könnte, dass ich sie nicht berührt habe. Die Permalink-Einstellung lautet "Monat und Name".

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

Alle Vorschläge werden hilfreich sein

und natürlich kann ich versteckte Dateien sehen.

95
Adam

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

Ich schlage vor, Sie setzen Ihre Permalink-Struktur auf die Standardeinstellung zurück (? P = ID), um sicherzustellen, dass .htaccess das Problem ist.

Danach können Sie einfach wieder "Monat und Name" einstellen und sehen, ob es funktioniert.

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

90

Dieses Problem zu beheben, ist sehr einfach, wenn Sie andere Permalinks als default wie Day and name, Month and name, Numeric, Post name oder Custom Structure verwendet haben 

Melden Sie sich in Ihrem Admin-Bereich an: Settings > Permalinks. Dies sollte Folgendes sein: http://yoursite.com/wp-admin/options-permalink.php 

Wähle Default Permalink-Einstellung und speichere die Änderungen

Dann kannst du wieder zu deiner anderen vorherigen Permalink-Wahl zurückkehren oder es als default belassen, wie du möchtest

Beachten Sie, dass dieses Problem auftreten kann, wenn Sie Ihre Site von einer Domäne oder einem Standort in eine andere verschieben.

46
usama sulaiman

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

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

<Directory "/var/www/html">

Zeile geändert ist:

AllowOverride None

zu

AllowOverride All

Und starten Sie den Webserver neu.

38
georgeos

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

  • Wechseln Sie zu Ihrem bevorzugten Permalink-Stil: Admin: Settings > Permalinks Und klicken Sie auf Speichern. Irgendwann behebt es das Problem. Wenn es nicht so wäre:
  • Stellen Sie sicher, dass die Datei /path/to/wordpress/.htaccess Geändert wurde und jetzt die Zeile RewriteEngine On Enthält. Wenn die Zeile nicht enthalten ist, liegt ein Problem mit den Wordpress Berechtigungen vor.
  • Stellen Sie sicher, dass das 'rewrite'-Modul geladen ist: Erstellen Sie eine PHP Datei mit

    <?php
      phpinfo()
    ?>
    

    öffnen Sie es im Browser und suchen Sie nach mod_rewrite. Es sollte sich in dem Abschnitt 'Loaded Modules' befinden. Wenn dies nicht der Fall ist, aktivieren Sie es. Weitere Informationen finden Sie in Ihrer Apache-Standarddatei index.html. In Ubuntu tun Sie dies mit dem Hilfsprogramm a2enmod.

  • Stellen Sie sicher, dass der Apache-Server die Datei .htaccess Überprüft. öffne httpd.conf - oder es ist Ubuntus Alternative, /etc/Apache2/Apache2.conf. Darin solltest du sowas haben

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

26
tsvikas

Es ist einfach, das Problem zu beheben. Befolgen Sie dazu die folgenden Schritte, Wenn Sie auf Ihr Admin-Dashboard zugreifen, melden Sie sich einfach an

Go to Settings » Permalinks, and simply click on Save Changes button.

 enter image description here

Dadurch werden Ihre Permalinks-Einstellungen aktualisiert und die Regeln zum Überschreiben des Flushs gelöscht. In den meisten Fällen behebt diese Lösung den Fehler der WordPress-Beiträge 404. Wenn dies jedoch nicht funktioniert, müssen Sie die .htaccess-Datei möglicherweise manuell aktualisieren.

Melden Sie sich über FTP an Ihrem Server an und ändern Sie die Datei .htaccess, die sich am selben Speicherort befindet, an dem sich Ordner wie/wp-content/und/wp-include/befinden. __ in Ihrem .htaccess

# 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

Hoffe, das wird das Problem lösen.

14
Pronab Roy

Führen Sie in der WordPress-Benutzeroberfläche Folgendes aus:

  1. Gehen Sie zur Admin-Einstellung

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

  3. Scrollen Sie nach unten und Sie sehen hier .htaccess-Code.

    <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 .htaccess-Datei ein.

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

Ich lief das und mein Problem wurde gelöst:

 Sudo a2enmod rewrite 
8
David Valenza

Dieser Fehler wird durch das Deaktivieren des Umschreibmods im Apache httpd.conf-Dokument verursacht. Sie müssen nur das Kommentarzeichen entfernen und die seo-freundlichen Permalinks genießen

6
Asif Khan
  • Überprüfen Sie, ob das Verzeichnis auf .htaccess korrekt ist
  • Überprüfen Sie, ob die Felder "siteurl" und "home" korrekt sind
3
José Carlos

Wenn Sie über einen FTP-Zugang zu Ihrem Konto verfügen:

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. Dies sind jedoch nicht die Regeln für mod_rewrite, 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 der Fall ist, gehen Sie wie folgt vor:

  1. Gehen Sie in die 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 die Verzeichnisse WP-Admin, WP-Content und WP-Includes befinden. Überprüfen Sie die .htaccess-Datei. Falls vorhanden, fahren Sie mit Schritt 4 fort

  3. Ist dies nicht der Fall, erstellen Sie in Ihrem FTP-Programm eine neue leere Datei namens .htaccess

  4. Ändern Sie den 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 das chmod der htaccess-Datei wieder auf 644 setzen, nachdem Sie fertig sind.

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

2
JEFF B

In der Regel wird dieses Problem behoben, indem Sie einfach die Seite Settings -> Permalink im WordPress-Administrator besuchen und auf Speichern klicken (wie bereits in den anderen Antworten angegeben). Wenn auf diese Seite zugegriffen wird, schreibt WordPress die Anweisungen in die Datei .htaccess, wodurch das Problem auf magische Weise behoben wird. Das Problem tritt häufig nach dem Verschieben einer Site auf (die Site bricht ab, weil der .htaccess zurückbleibt oder die Einstellungen aktualisiert werden müssen).

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

Wenn Sie sich auf Shared Hosting befinden, können Sie wahrscheinlich alles tun. Wenn Sie immer noch ein Problem haben, sollten Sie mit dem Support des Hosting-Providers sprechen. Stellen Sie andernfalls sicher, dass die Verwendung von .htaccess-Dateien auf dem Server aktiviert ist, wie von @georgeos bereits vorgeschlagen. Beachten Sie, dass httpd.conf nicht immer verwendet wird ( Ubuntu gibt an, dass es veraltet ist aber die offiziellen Apache-Dokumente weisen immer noch darauf hin, dass es sich oft um die Hauptkonfigurationsdatei handelt). /etc/httpd/conf/httpd.conf und /etc/Apache2/Apache2.conf scheinen die häufigsten Stellen für diese Datei zu sein. Suchen Sie den Block für den öffentlichen Ordner (normalerweise <Directory /var/www/>) und stellen Sie sicher, dass die AllowOverride-Direktive auf All gesetzt ist. Wenn None eingestellt ist, wird Ihre .htaccess-Datei vom Server einfach ignoriert.

2
mrtnmgs

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

AH00670: Die Optionen FollowSymLinks und SymLinksIfOwnerMatch sind beide deaktiviert, Daher ist die RewriteRule-Direktive auch aufgrund ihres ähnlichen Möglichkeit, Verzeichniseinschränkungen zu umgehen: /srv/www/htdocs/wp-intranet /

Die Lösung bestand darin, Options All und AllowOverride All in unserer virtuellen Host-Konfiguration festzulegen.

2
Black

Ich habe mod_rewrite installiert, um das Problem zu beheben. Unter dem folgenden Link finden Sie eine Installationsanleitung: - http://www.iasptk.com/enable-Apache-mod_rewrite-ubuntu-14-04-lts/

1
Abhishek K

Fall 1: - Lassen Sie uns überlegen, ob eine Website von einem Hosting zu einem anderen Hosting migriert wird, wenn diese Art von Problem angezeigt wird.

Lösung: - Gehen Sie einfach zum alten .htaccess-Dateikode für die Serverkopie und dann in der neuen .htaccess-Datei des Servers. 99% ich werde arbeiten.

0
Navruk

Für Nginx-Benutzer

Verwenden Sie in Ihrer conf-Datei Folgendes 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 einen systemctl reload nginx aus, um die Änderungen zu sehen und Ihre Nicht-Homepage-Links sollten geladen werden.

0
ABCTaylor

Navigieren Sie einfach zu Einstellungen-> Permalink in Ihrem Dashboard und dann Änderungen speichern in der letzten. \

0
Deepak Sharma

Wenn sich Ihre WordPress-Installation in einem Unterordner befindet (zB https://www.example.com/subfolder ), ändern Sie diese Zeile in Ihrem WordPress-Code .htaccess.

RewriteRule . /index.php [L]

zu 

RewriteRule . /subfolder/index.php [L]

Auf diese Weise weisen Sie den Server an, nach WordPress index.php im WordPress-Ordner (ex. https://www.example.com/subfolder ) und nicht im öffentlichen Ordner (ex. https: //www.example.com ).

Möglicherweise haben Sie .htaccess in den Webhost-Einstellungen nicht zulässig. Die Einstellung auf Standard-Permalinks funktioniert in diesem Fall.

0
Fanky

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

0
boomz

Bevor Sie versuchen, Permalink- oder Serverkonfigurationsänderungen vorzunehmen, überprüfen Sie bitte Ihre .htaccess-Datei. Dies ist meist ein beschädigtes oder leeres Problem mit der .htaccess-Datei. Setzt die htaccess-Datei auf default 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
0
Mustafa sabir

Ich habe gerade den Permalink in "Monat und Tag" aller Posts geändert, indem ich zu Permalink> Setting gehe.

Nun sind alle Beiträge offen und funktionieren gut.

Wiederum habe ich alle Beiträge in ihren aktuellen Permalink umbenannt. Es funktioniert wieder gut.

Diese Methode hat für mich funktioniert :-)

0
Shani Deshwal