WordPress chez Free.fr, erreur 500, permaliens…

Je pense ne pas être le seul à avoir mon blog WordPress hébergé chez Free.fr ! Bien que ce soit gratuit, l’hébergement mutualisé a un prix… celui d’avoir de manière assez obscure l’erreur 500 par exemple.

Comment ça? Tout d’un coup mon site n’est plus accessible?! Je n’ai rien changé pourtant…

Pour avoir passé du temps à comprendre d’où provient le problème, je vais partager avec vous ma solution, en espérant que cela vous aidera. Bien souvent, l’édition des permaliens (va réécrire les URLs) génère à la racine de votre site un fichier « .htaccess » avec des directives WordPress à l’intérieur. Free ne supportant pas (encore?) cela va provoquer une erreur 500. Il se peut qu’un tel problème arrive également lorsque vous éditez/ajoutez un billet sur votre blog.

Non vous n’avez vraiment rien touché?

Sachez que WordPress a un système automatique de vérification des fichiers « .htaccess » et c’est peut-être pourquoi du jour au lendemain vous éprouvez ce genre de problème.

Donc en clair que faire?

Si vous n’avez jamais créé et placé un fichier « .htaccess » à la racine de votre site, faites cela :

Activez php5 vous permettra déjà de résoudre vos problèmes de feed vide (flux RSS – voir ce billet) en écrivant dans un fichier nommé « .htaccess » ceci :

php 1

Notez bien l’espace entre php et le 1. Placez ce fichier à la racine de votre WordPress. Écrasez le fichier existant s’il existe car il contient les directives WordPress qui provoquent l’erreur 500.

Si vous avez déjà fait cette étape, supprimez le fichier « .htaccess » déjà présent et remettez-le votre comme décrit juste au dessus.

D’autres solutions?

Il existe bien une solution pseudo-permanente. Le souci est qu’elle disparaitra à chaque mise à jour de votre WordPress… Elle consiste à désactiver la vérification des fichiers htaccess. Allez éditer dans /wp-admin/includes/misc.php à partir de la ligne 67 la fonction « function insert_with_markers( $filename, $marker, $insertion )  » et faites en sorte qu’elle retourne toujours « true » (en gros effacez le corps de la fonction et mettez « return true; »).

Voilà, si vous avez des problèmes ou remarques, n’hésitez pas à partager car cela aidera très certainement de nombreuses personnes !

Vous aimerez également...