Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Erreur 404 après une migration ou un changement de permaliens

Toutes les pages du site renvoient une erreur 404 après une migration vers un nouveau serveur, ou juste après avoir touché aux réglages de permaliens : la cause est presque toujours que la configuration du serveur qui redirige les URL vers WordPress n’a pas suivi le déménagement.

Décrire mon problème Discuter sur WhatsApp

Comment je procède

  1. Distinction du symptôme

    Je vérifie si seule la page d’accueil fonctionne, typique d’un problème de réécriture d’URL, ou si le site entier boucle en redirection, souvent un problème de siteurl/home plutôt que de permaliens.

  2. Identification du serveur web

    Apache ou Nginx ne se corrigent pas de la même façon : Apache lit un fichier .htaccess à la racine, Nginx a besoin d’un bloc server édité directement dans sa configuration.

  3. Réenregistrement des permaliens

    Sur Apache, je resauvegarde Réglages > Permaliens pour régénérer le .htaccess ; sur Nginx, j’édite le bloc server pour ajouter l’équivalent de try_files, WordPress seul ne peut pas le faire.

  4. Vérification des types de contenu personnalisés

    Si des extensions WooCommerce ou un constructeur de pages enregistrent leurs propres types de contenu, je vérifie qu’elles sont actives au moment du réenregistrement pour que leurs règles de réécriture soient bien reprises.

  5. Vérification de siteurl et home

    Je contrôle que ces deux options en base correspondent au domaine réel après la migration, car un mauvais siteurl produit un 404 ou une boucle de redirection qui n’a rien à voir avec les permaliens.

Ce que je traite régulièrement

  • Toutes les pages du site renvoient une erreur 404 après une migration vers un nouvel hébergeur
  • Seule la page d’accueil fonctionne, toutes les autres pages sont en erreur 404
  • Les pages produit WooCommerce sont en 404 alors que les pages classiques fonctionnent
  • Une boucle de redirection apparaît après un changement de nom de domaine
  • Les permaliens fonctionnaient sur l’ancien serveur mais plus sur le nouveau

Comment fonctionnent les permaliens, et ce qui casse après une migration

Les permaliens « jolis » de WordPress (Réglages > Permaliens) fonctionnent en deux temps : WordPress réécrit les URL brutes en chemins propres, puis le serveur web doit rediriger chaque requête vers index.php pour que WordPress puisse la résoudre. Sur Apache, cette redirection passe par des règles de réécriture dans .htaccess ; sur Nginx, par un bloc équivalent dans la configuration du serveur.

Après une migration vers un nouveau serveur, ce fichier .htaccess, ou ce bloc Nginx, ne suit pas automatiquement. Sur Apache, resauvegarder Réglages > Permaliens régénère le .htaccess et suffit en général. Sur Nginx, il faut éditer directement le bloc server, ce que WordPress ne peut pas faire lui-même.

Les types de contenu personnalisés, utilisés par de nombreuses extensions WooCommerce et par les constructeurs de pages pour leurs templates, ont besoin que leurs propres règles de réécriture soient elles aussi régénérées : réenregistrer les permaliens le fait, mais seulement si l’extension qui les déclare est active au moment de l’opération. Un décalage entre les options siteurl/home et le domaine réel après migration produit un autre type de 404 ou de boucle de redirection, sans rapport avec les permaliens : les deux se ressemblent pour un commerçant mais se corrigent différemment.

.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

Pages liées

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

D’où partez-vous ?
Quelle est la taille du catalogue, s’il y a une boutique ?
Le site utilise-t-il des extensions payantes avec licence à retransférer ? (facultatif)

Certaines licences sont limitées à un domaine ou nécessitent une réactivation auprès de l’éditeur.

Qu’est-ce qui doit impérativement être conservé ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Questions fréquentes

Je viens de changer d’hébergeur et tout le site est en 404, c’est grave ?
Non, dans la grande majorité des cas c’est le fichier .htaccess ou la configuration Nginx qui n’a pas suivi la migration. Ça se corrige généralement en quelques minutes une fois identifié.
Pourquoi seule la page d’accueil fonctionne et pas les autres ?
C’est le signe typique d’un problème de réécriture d’URL : la page d’accueil ne dépend pas des permaliens, les autres pages si.
J’ai resauvegardé les permaliens et ça n’a rien changé, pourquoi ?
Si le site tourne sur Nginx, resauvegarder les permaliens ne suffit pas : contrairement à Apache, Nginx a besoin que son bloc server soit édité directement, ce que WordPress ne peut pas faire seul.
Vais-je perdre mon référencement si les URL changent après la migration ?
Pas si les anciennes URL sont redirigées en 301 vers les nouvelles. C’est un travail à prévoir séparément du simple réenregistrement des permaliens, surtout si la structure d’URL a changé.
Mes fiches produit sont en 404 mais pas mes pages classiques, pourquoi cette différence ?
Les fiches produit dépendent des règles de réécriture spécifiques à WooCommerce, régénérées seulement si l’extension est active au moment où les permaliens sont réenregistrés.