Résumé : si certaines pages (toutes sauf la page d’accueil) renvoient une erreur 404 après l’activation d’une structure d’URL « jolies permaliens », les causes les plus courantes sont : règles de réécriture absentes ou corrompues dans .htaccess, module Apache mod_rewrite indisponible, conflits de plugins/thème, URL du site mal configurée dans la base de données, ou caches/CDN obsolètes. Ce guide explique les vérifications et corrections réalisables depuis WordPress et cPanel.

Prérequis

  • Accès à l’administration WordPress (wp‑admin) OU accès cPanel (Gestionnaire de fichiers) et phpMyAdmin.
  • Sauvegarde récente des fichiers et de la base de données. Utilisez JetBackup ou exportez la base via le guide JetBackup ou phpMyAdmin.
  • Connaissance du dossier racine de votre site (ex. public_html ou un sous‑dossier).
  • Si le serveur est géré par l’hébergeur : possibilité de contacter le support pour activer mod_rewrite ou modifier AllowOverride.

Termes expliqués (une fois)

  • Permaliens : structure d’URL « lisible » (ex. /categorie/nom‑article) fournie par WordPress.
  • .htaccess : fichier de configuration local utilisé par Apache pour appliquer des règles (redirections, réécritures). Il se trouve à la racine du site.
  • mod_rewrite : module Apache qui permet d’appliquer les règles de réécriture contenues dans .htaccess. Sans lui, les « pretty permalinks » ne fonctionnent pas sur Apache.

Étapes rapides (test en 5 minutes)

  1. Dans WordPress : Réglages → Permaliens → cliquez sur Enregistrer les modifications (sans rien changer) pour forcer la régénération des règles.
  2. Si ça ne suffit : via cPanel → Gestionnaire de fichiers, renommez temporairement .htaccess (ex. .htaccess.bak) et réessayez la page. S’il y a du changement, recréez .htaccess avec les règles WordPress par défaut (modèle ci‑dessous).
  3. Désactivez rapidement les plugins en renommant wp-content/plugins (ex. plugins.off) ; si les 404 disparaissent, réactivez un plugin à la fois pour isoler le fautif.
  4. Vérifiez si un CDN (ex. Cloudflare) ou un cache serveur renvoie une ancienne 404 et purgez‑le.

Procédure détaillée (actions numérotées)

1) Sauvegarder — fichiers + base

  1. Avant toute modification, exportez la base via phpMyAdmin ou utilisez JetBackup : Guide JetBackup et phpMyAdmin.
  2. Téléchargez une archive du dossier du site (public_html ou le dossier de l’installation).
Bouton File Manager dans le tableau de bord cPanel pour accéder aux fichiers du site
Ouvrez File Manager depuis cPanel pour sauvegarder ou modifier les fichiers (capture centrée sur l’outil File Manager).

2) Réinitialiser les permaliens depuis WordPress (si accès wp‑admin)

  1. Connectez‑vous à /wp‑admin → Réglages → Permaliens.
  2. Cliquez sur Enregistrer les modifications sans rien changer. WordPress tente d’écrire le fichier .htaccess automatiquement et régénère les règles.

Si WordPress ne peut pas écrire .htaccess (permissions), il affichera un message et proposera le bloc à coller manuellement — voir l’étape suivante.

Référence : la page d’aide officielle des permaliens (ouvre dans un nouvel onglet).

Paramètres Permaliens — Documentation WordPress

3) Vérifier et restaurer le fichier .htaccess

  1. Dans cPanel → Gestionnaire de fichiers, activez l’affichage des fichiers cachés (fichiers commençant par un point).
  2. Repérez le .htaccess à la racine de l’installation (souvent public_html).
  3. Renommez‑le temporairement (ex. .htaccess.bak) et testez : si les 404 disparaissent après avoir enregistré les permaliens, recréez le fichier avec le contenu correct.
Fichier .htaccess dans le Gestionnaire de fichiers cPanel, prêt à être modifié ou renommé
Repérer et modifier .htaccess depuis le Gestionnaire de fichiers cPanel.

Modèle WordPress par défaut à placer dans .htaccess (racine) :

# 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 votre site est installé dans un sous‑dossier (ex. /blog/), adaptez RewriteBase et la dernière règle :

# Exemple pour site dans /blog/
RewriteBase /blog/
RewriteRule . /blog/index.php [L]

Après modification, vérifiez les permissions du fichier (644 recommandé) et rechargez la page test.

4) Tester sans plugins / thème (isoler un conflit)

  1. Si vous avez accès à wp‑admin : désactivez tous les plugins et activez un thème par défaut (Twenty Twenty‑Three) puis testez les permaliens.
  2. Si vous n’avez pas wp‑admin : dans cPanel → Gestionnaire de fichiers, renommez le dossier wp-content/plugins en plugins.off pour désactiver toutes les extensions instantanément. Testez ensuite les URLs.
Renommer le dossier plugins de WordPress dans cPanel pour désactiver temporairement les extensions
Renommer le dossier plugins via File Manager pour désactiver rapidement les extensions.

Si les 404 disparaissent : restaurez le nom du dossier et réactivez les plugins un à un pour identifier le responsable.

5) Vérifier mod_rewrite et le type de serveur

Sur un serveur Apache, les permaliens reposent sur mod_rewrite. Si ce module n’est pas actif, les règles contenues dans .htaccess sont ignorées : les URLs « jolies » renverront des 404.

  • En mutualisé, vous ne pouvez pas activer mod_rewrite vous‑même : contactez le support en leur fournissant les URL de test et la copie de .htaccess.
  • Vérifiez aussi que la directive AllowOverride permet l’utilisation de .htaccess (valeur All nécessaire dans la configuration Apache).

Ressource utile (ouvre dans un nouvel onglet) :

Introduction à mod_rewrite — documentation Apache

Remarque pour Nginx : Nginx n’utilise pas .htaccess. Si votre serveur utilise Nginx ou un reverse proxy, la réécriture s’effectue dans la configuration du site (server block). Exemple courant à fournir au support :

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

6) Corriger l’URL du site (site déplacé / domaine changé)

  1. Ouvrez cPanel → phpMyAdmin → sélectionnez la base → table wp_options.
  2. Vérifiez les valeurs siteurl et home. Si elles pointent vers l’ancienne adresse, corrigez‑les (sauvegardez d’abord un export SQL).
Entrées siteurl et home de WordPress dans phpMyAdmin prêt à être modifiées
Éditer siteurl et home dans phpMyAdmin si l’adresse du site a changé.

Guide interne pour phpMyAdmin : Comment importer / exporter et modifier la base (phpMyAdmin).

7) Utiliser WP Toolkit (si présent dans cPanel)

Si votre hébergeur propose WP Toolkit dans cPanel, il propose des vérifications d’intégrité, réparations et actions (réinstaller les fichiers de base, restaurer des sauvegardes, etc.). Il peut accélérer le diagnostic si vous ne voulez pas modifier manuellement.

WP Toolkit dans cPanel : vérifier et réparer une installation WordPress
WP Toolkit (si activé) : vérification d’intégrité et réparations automatiques pour WordPress.

Guide WP Toolkit interne : WP Toolkit (cPanel) : gérer vos installations WordPress.

8) Vider les caches et purger le CDN

Pensez à vider les caches côté :

  • Plugin de cache (WP Super Cache, W3 Total Cache, etc.)
  • Cache serveur (Redis, Varnish) si activé
  • CDN externe (Cloudflare ou autre) — purgez la zone
Un cache obsolète peut continuer à renvoyer une 404 même après correction.

9) Vérifier les redirections et pages d’erreur personnalisées

Une redirection mal configurée (dans .htaccess ou l’outil Redirections de cPanel) peut provoquer une 404. Vérifiez aussi les Pages d’erreur personnalisées si vous souhaitez afficher une page 404 spécifique.

Guide interne utile : Configurer des règles et des redirections via le fichier .htaccess et Créer une page d’erreur personnalisée.

Dépannage : causes fréquentes et vérifications rapides

  • .htaccess absent ou corrompu — renommez et recréez le fichier (voir étape 3).
  • mod_rewrite non activé (Apache) ou serveur Nginx — contactez le support.
  • Plugin ou thème qui altère les règles de réécriture — testez en désactivant les plugins (voir étape 4).
  • Mauvaises permissions (répertoires 755, fichiers 644 recommandé).
  • Site déplacé sans mettre à jour siteurl/home dans la base — corrigez via phpMyAdmin.
  • Cache / CDN qui renvoie une ancienne 404 — purgez tous les caches.
  • Règles de redirection conflictuelles dans .htaccess (ex. règles générales placées avant les règles WordPress).

Quand contacter le support technique

Contactez le support si, après avoir appliqué les étapes ci‑dessus, le problème persiste. Fournissez :

  • Exemples d’URL qui renvoient 404 (URL affichée + URL attendue).
  • Copie (ou capture) du fichier .htaccess — ou indiquez qu’il est absent.
  • Actions déjà tentées (réinitialisation permaliens, plugins désactivés, changement de theme, purge cache).
  • Si possible : capture du Gestionnaire de fichiers cPanel (fichier .htaccess visible) et capture phpMyAdmin si vous avez modifié siteurl.
  • Mentionnez si le site est derrière un CDN ou un reverse proxy (Cloudflare, Varnish, Nginx).

Limites et précautions

  • Si vous n’avez pas d’accès cPanel ou SFTP, demandez au support d’effectuer les vérifications (activation mod_rewrite, restaurer .htaccess, vérifier les logs serveur).
  • Ne modifiez la base (phpMyAdmin) que si vous avez sauvegardé l’export SQL au préalable.
  • Les modifications d’Apache (activation de modules, AllowOverride) nécessitent des droits administrateur serveur ; faites appel au support.
  • Pour les environnements Nginx, la correction passe par la configuration du serveur et non par .htaccess — fournissez l’extrait try_files au support si nécessaire.

Modèles utiles

.htaccess — WordPress à la racine

# 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

.htaccess — WordPress dans un sous‑dossier /blog/

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

Extrait Nginx utile à fournir au support

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

Je peux vous aider

Si vous le souhaitez, je peux :

  • préparer le fichier .htaccess adapté à votre sous‑dossier (indiquez le chemin exact du site),
  • ou produire la liste d’éléments à transmettre au support (URL témoin, copie de .htaccess, actions tentées) pour accélérer l’intervention.

Ressources internes

Sources publiques consultées

Documentation de référence

  • Settings Permalinks screen — WordPress.org (documentation)
  • Apache HTTP Server: mod_rewrite Introduction (httpd.apache.org)
  • WP Toolkit Command Line Interface — cPanel documentation

Documentation consultée le 16 octobre 2026. Les outils peuvent varier selon votre hébergement.