Erreur 404 Not Found sur toutes les pages WordPress sauf l’accueil

Fiche du décodeur d'erreurs, mise à jour le 12 octobre 2026

BloquantServeur et codes HTTP
Le message affiché
Not Found. The requested URL was not found on this server.
Autres formulations du même message 5
  • The requested URL /contact/ was not found on this server.
  • 404 Not Found
  • The resource requested could not be found on this server!
  • Cette page du site example.com est introuvable
  • HTTP ERROR 404

L’accueil s’affiche, mais chaque article, page ou catégorie répond « Not Found ». Le serveur cherche un vrai fichier à l’adresse demandée au lieu de confier la demande à WordPress. Ce relais est assuré par les règles de réécriture : elles se trouvent dans le fichier .htaccess sur Apache et LiteSpeed, et dans la configuration du serveur sur nginx.

Pourquoi cette erreur apparaît

  • Le fichier .htaccess a disparu ou a été écrasé, après une migration, une restauration ou le passage d’une extension qui l’a réécrit.
  • Le site a changé de dossier ou de domaine et les règles de réécriture pointent encore vers l’ancien chemin.
  • Le module de réécriture d’Apache est désactivé, ou le serveur ignore les fichiers .htaccess (réglage AllowOverride None).
  • Sur nginx, la règle qui renvoie les adresses vers index.php manque dans la configuration du site.
  • Une extension a ajouté un nouveau type de contenu sans que les permaliens aient été régénérés.

Comment corriger le problème

Réenregistrer les permaliens

Dans l’administration, ouvrez Réglages > Permaliens et cliquez sur « Enregistrer les modifications » sans rien changer. WordPress recalcule ses règles et réécrit le fichier .htaccess s’il en a le droit. Testez ensuite une page intérieure.

Contrôler le contenu du fichier .htaccess

Par FTP, affichez les fichiers cachés et ouvrez .htaccess à la racine du site. Il doit contenir ce bloc, généré par WordPress. Si le site est installé dans un sous-dossier, remplacez / par /sous-dossier/ dans la ligne RewriteBase et dans la dernière règle.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Vérifier l’adresse du site

Après un déménagement du site, ouvrez Réglages > Général : les deux champs d’adresse (celle de WordPress et celle du site) doivent désigner le nouvel emplacement. S’ils pointent encore vers l’ancien dossier ou l’ancien domaine, les liens internes mènent à des pages qui n’existent pas.

Ajouter la règle nginx

Un serveur nginx ne lit pas le fichier .htaccess. La configuration du site doit renvoyer vers index.php toute adresse qui ne correspond pas à un fichier réel, puis nginx doit être rechargé.

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

Activer la réécriture sur Apache

Sur un VPS sous Apache, activez le module rewrite et autorisez les fichiers .htaccess (AllowOverride All) dans la configuration du dossier du site, puis redémarrez Apache.

sudo a2enmod rewrite
sudo systemctl restart apache2

Téléchargez une copie du fichier .htaccess avant de le modifier : il contient parfois des règles ajoutées par l’hébergeur ou par une extension de cache ou de sécurité.

Le guide completComprendre les erreurs HTTP de WordPress

Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.

Ouvrir le décodeur