webentwicklung-frage-antwort-db.com.de

Kategorie-Links führten plötzlich zu 404-Fehlern

Mein Wordpress-Blog scheint plötzlich 404-Fehler beim Zugriff auf Kategorieseiten verursacht zu haben. Zum Beispiel http://blog.rtwilson.com/category/tok-related/ . Interessanterweise geschieht dies nicht für untergeordnete Kategorien (wie GIS und Fernerkundung, die in der Seitenleiste unter dem obigen Link angezeigt werden), sondern für übergeordnete Kategorien (z. B. Akademisch) und Kategorien ohne untergeordnete Elemente (wie TOK-bezogene).

Hat jemand eine Idee, warum dies passiert sein könnte? Ich habe kürzlich die Permalink-Struktur für meine Blog-Posts selbst geändert, aber nicht für die Kategorien. Muss ich die Kategorieliste irgendwie neu erstellen? Wenn das so ist, wie?

Update .htaccess-Dateiinhalt:

# 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
2
robintw

Als Erstes sollten Sie Ihre Permalinks von WordPress Admin erneut speichern.

Und stellen Sie sicher, dass Ihre Änderungen in .htaccess gespeichert werden. Wenn WP Sie warnt, dass .htaccess nicht beschreibbar ist, ändern Sie die Berechtigungen der .htaccess-Datei manuell über FTP in 644 und versuchen Sie es erneut.

Das "." vor dem Dateinamen bedeutet, dass es sich um eine normalerweise unsichtbare Datei handelt. Überprüfen Sie daher, ob auf Ihrem FTP-Client unsichtbare Dateien angezeigt werden, wenn in Ihrem Webverzeichnis keine .htaccess-Datei vorhanden ist. Die .htaccess-Datei befindet sich auf derselben Verzeichnisebene wie Ihre index.php-Datei, die auf der Seite "Allgemeine Optionen" unter "Site-Adresse (URL)" angegeben ist.

Dies ist ein Standard-WordPress-Umschreibeblock:

# 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

Wenn Sie einen 500-Server-Fehler erhalten, bedeutet dies, dass die Zeichencodierung der Datei falsch ist und möglicherweise geändert wurde, als/wenn Sie die .htaccess-Datei bearbeitet haben. Sie können versuchen, die aktuelle .htaccess-Datei umzubenennen, und mit Ihrem FTP-Client eine neue Datei erstellen und .htaccess nennen.

Wenn Sie nach dem Speichern von Permalinks und dem Feststellen, dass die .htaccess-Datei den obigen Umschreibeblock enthält, immer noch 404-Verhalten oder ein seltsames Verhalten feststellen, fügen Sie es hinzu

global $wp_rewrite; $wp_rewrite->flush_rules();

gehen Sie in der Datei functions.php Ihres Themes zurück und aktualisieren Sie die Homepage. Entfernen Sie dann den Code. Dadurch werden Überschreibregeln im Cache und in Transienten gelöscht.

Weitere Tipps und Beispiele zur Fehlerbehebung finden Sie unter Verwenden von Permalinks "WordPress Codex

3
markratledge

Ich hatte das gleiche Problem.

  • Stellen Sie sicher, dass das Apache-Umschreibemodul aktiviert und die richtige .htaccess-Datei vorhanden ist
  • Wenn der obige Schritt nicht funktioniert, gehen Sie zu den Einstellungen für Permalinks und geben Sie die Kategoriebasis als "Kategorie" ein.
  • Einige SEO-Plugins, die neu geschrieben wurden, können zu Problemen führen
  • Wenn Sie ein Cache-Plugin haben, löschen Sie dieses.
0
Bala

Ich hatte das gleiche Problem - ich hatte das Plugin 'Advanced Permalinks' installiert und es hat einen Fehler ... es stellt sich heraus, dass ich diese Zeile auskommentiere

$this->add_filter ('category_rewrite_rules');

im Plugin. Mündliche Antwort nicht von mir (obwohl es bei mir funktioniert hat), sondern von hier

0
Joe

Ich habe "Advance Permalink" von John Godley am 31. März 2015 installiert, um die vorherige Permalink-Struktur von http://punch2crunch.com umzuleiten.

Nach 36 Stunden beginnen alle meine Cotegories automatisch 404 Fehler und eine funktionierende Kategorie zu erzeugen, aber krank an einem einzelnen Beitrag. Wenn dies auch bei Ihnen der Fall ist, müssen Sie nur eine Sache einfügen.

Folge den Schritten:

  1. Wählen Sie im Dashboard unter Zu Plugins wechseln den Editor aus.
  2. Wähle "Advance-permalink/Advance-permalink.php"
  3. Scrollen Sie nach unten, bis Sie den folgenden Code gefunden haben

    $this->add_filter ('post_rewrite_rules');
    $this->add_filter ('author_rewrite_rules');
    $this->add_filter ('category_rewrite_rules');
    $this->add_filter ('rewrite_rules_array');
    
  4. Setzen Sie einfach zwei Schrägstriche // vor $ this-> add_filter ('category_rewrite_rules'); Wie unten

    $this->add_filter ('post_rewrite_rules');
    $this->add_filter ('author_rewrite_rules');
    //$this->add_filter ('category_rewrite_rules');
    $this->add_filter ('rewrite_rules_array');
    

Aktualisieren Sie Ihre Website, und alles wird wieder einwandfrei funktionieren. Wenn nicht, dann muss man woanders suchen.

0
Pradip Mehta

Hat jemand eine Idee, warum dies passiert sein könnte?

Auf dieser Seite wird kein 404-Fehler angezeigt, aber um die Frage zu beantworten: Ich habe keine Ahnung, warum dies passiert oder nicht.

Ich habe kürzlich die Permalink-Struktur für meine Blog-Posts selbst geändert, aber nicht für die Kategorien. Muss ich die Kategorieliste irgendwie neu erstellen?

Jedes Mal, wenn Sie die Permalink-Struktur im Admin ändern, werden Permalinks automatisch neu erstellt, sodass Sie sich nicht darum kümmern müssen. Und es gibt keine Möglichkeit, die Kategorieliste neu zu erstellen, sodass Sie sich darüber keine Gedanken machen müssen.

0
hakre