web-dev-qa-db-fra.com

Les liens de catégorie ont soudainement commencé à donner des erreurs 404

Mon blog Wordpress semble soudainement avoir commencé à me donner 404 erreurs lors de l'accès aux pages de catégorie. Par exemple, http://blog.rtwilson.com/category/tok-related/ . Fait intéressant, cela ne se produit pas pour les catégories enfants (telles que le SIG et la télédétection, indiqué dans l'encadré sur le lien ci-dessus), mais bien pour les catégories parent (telles que Académique) et les catégories sans enfant (comme celles liées à TOK).

Quelqu'un a-t-il une idée de la raison pour laquelle cela aurait pu se produire? J'ai récemment changé la structure de permalien pour mes articles de blog eux-mêmes, mais pas pour les catégories. Dois-je reconstruire la liste des catégories d'une manière ou d'une autre? Si c'est le cas, comment?

Update contenu du fichier .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
2
robintw

La première chose à faire est de réenregistrer vos liens permanents à partir de l’administrateur WordPress.

Et assurez-vous que vos modifications sont enregistrées dans .htaccess. Si WP vous avertit que .htaccess n'est pas accessible en écriture, utilisez manuellement FTP pour modifier les autorisations du fichier .htaccess sur 644, puis réessayez.

Le "." devant le nom du fichier signifie qu'il s'agit d'un fichier normalement invisible. Vérifiez donc votre client FTP pour vous assurer qu'il affichera les fichiers invisibles si vous ne voyez pas de fichier .htaccess dans votre répertoire Web. Le fichier .htaccess sera au même niveau de répertoire que votre fichier index.php indiqué par le paramètre Adresse du site (URL) de la page Options générales.

Ceci est un bloc de réécriture WordPress standard:

# 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

Si vous obtenez une erreur de serveur 500, cela signifie que le codage de caractères du fichier est erroné et a peut-être été modifié lorsque/si vous avez modifié le fichier .htaccess. Vous pouvez essayer de renommer le fichier .htaccess actuel et d'utiliser votre client FTP pour créer un nouveau fichier et nommez-le .htaccess.

Si vous rencontrez toujours un comportement 404 ou étrange après avoir sauvegardé des liens permanents et constaté que le fichier .htaccess contient le bloc de réécriture ci-dessus, essayez d'ajouter

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

dans le fichier functions.php de vos thèmes, revenez en arrière et actualisez la page d'accueil, puis supprimez le code. Cela effacera les règles de réécriture dans le cache et dans les éléments transitoires.

Vous trouverez d'autres conseils et exemples de dépannage sur Utilisation des liens permanents "WordPress Codex

3
markratledge

J'ai eu le même genre de problème.

  • Assurez-vous que le module de réécriture Apache est activé et que le fichier .htaccess est correct.
  • Si l'étape ci-dessus ne fonctionne pas, accédez aux paramètres de permaliens et entrez la catégorie de base comme "catégorie".
  • Certains plugins de référencement propre à la réécriture peuvent vous donner problème
  • Si vous avez un plugin de cache, désactivez-le.
0
Bala

J'ai eu le même problème - j'avais installé le plugin 'advanced permalinks', et il y a un bogue ... il s'avère que commentant cette ligne

$this->add_filter ('category_rewrite_rules');

dans le plugin. Oringal répond pas le mien (bien que cela a fonctionné pour moi) mais était de ici

0
Joe

J'ai installé le plug-in "Advance Permalink" de John Godley, le 31 mars 2015 pour me rediriger vers la structure précédente de permalink de http://punch2crunch.com

Au bout de 36 heures, toutes les catégories commencent à créer automatiquement 404 erreurs et une catégorie fonctionne, mais malade, à poste unique. Si la même chose se passe avec vous, vous devez coller une chose seulement.

Suis les étapes:

  1. Dans le tableau de bord, accédez aux plugins, choisissez éditeur.
  2. Sélectionnez "Advance-permalink/Advance-permalink.php
  3. Faites défiler jusqu'à ce que vous avez trouvé le code ci-dessous

    $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. Mettez simplement deux barres obliques // avant $ this-> add_filter ('category_rewrite_rules'); comme ci-dessous

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

Actualisez votre site et tout fonctionnera à nouveau parfaitement. Si non, alors il faut chercher ailleurs.

0
Pradip Mehta

Quelqu'un a-t-il une idée de la raison pour laquelle cela aurait pu se produire?

Je ne reçois pas d'erreur 404 sur cette page, mais pour répondre à la question: je ne sais pas pourquoi cela se produit ou non.

J'ai récemment changé la structure de permalien pour mes articles de blog eux-mêmes, mais pas pour les catégories. Dois-je reconstruire la liste des catégories d'une manière ou d'une autre?

Chaque fois que vous modifiez la structure de permalink dans l'administrateur, les permaliens sont automatiquement reconstruits, de sorte que vous n'avez pas à vous en soucier. Et il n’existe pas de reconstruction de la liste des catégories, vous n’avez donc pas à vous poser de questions à ce sujet.

0
hakre