La première étape consiste à activer la réécriture d’URL de manière “classique” via votre interface d’administration. (dans Réglages > Permaliens sous WordPress2.5). En toute logique une erreur 500 de free.fr survient après quelques secondes sur les pages de votre site. Pas d’inquiétude, le but de l’article est justement de remédier à cette erreur en moins de 5 minutes.
.htaccess
La seconde étape consiste à ouvrir le fichier .htaccess situé à la racine de votre site. Celui-ci contient un ensemble d’instructions générées par WordPress. Supprimons tout, allègrement, pour ne laisser plus que l’instruction suivante :
ErrorDocument 404 /index.php
Header Statut 404
Je vous vois déjà bondir, “Toutes mes pages auront un code d’erreur 404“, “Je vais en perdre mon référencement chez Google“. Et bien non car cet article ne s’arrête pas là.
Effectivement, cette technique va rediriger silencieusement l’ensemble des pages non trouvées vers index.php (le cœur de votre WordPress) en y rajoutant un code HTTP 404. Nous allons donc, pour contrer cela, ajouter cette ligne de code php tout en haut de votre fichier index.php
<?php header('HTTP/1.1 200 OK', true, 200); header("Status:200 OK"); ?>
Ce code aura pour action de remplacer le header actuel 404 par un code 200, signifiant ainsi à Google et aux autres, que cette page existe, et que oui tout va bien.
Dernière étape
WordPress possède un système de vérification des fichiers htaccess. Il arrive ainsi donc, de temps en temps, que les htaccess soient réécris. Causant ainsi une erreur 500. Pour remédier à ce désagrément, rendez vous dans le fichier /wp-admin/includes/misc.php à hauteur de la ligne 37.
remplacez
function insert_with_markers( $filename, $marker, $insertion ) {
par
function insert_with_markers( $filename, $marker, $insertion ) { return true;
Ce code aura pour effet d’annuler l’effet de la fonction insert_with_markers.
Et voila, votre site peut désormais posséder de belles URL comme celle de cette article (http://piranhaworld.free.fr/activer-reecriture-url-wordpress-sur-free.html). Cool non?
EDIT: pour information, le REFERER reste le bon, j’attends les stats webalizer et vous tiens informé.
EDIT 2: les stats webalizer ne semblent pas souffrir d’un nombre anormal de 404. Quoi qu’il en soit, rien ne vaut un marqueur Xiti qui ne remarquera en rien l’astuce employée.
Suite et fin
(Merci à Adrien et Duplex pour leur remarques)
Effectivement “vrai” pages d’erreur ne renvois pas de code 404 au client/bot/etc.. pour palier ce manque, cherchons le fichier de template 404.php (depuis l’editeur de theme pour faire simple) modifions ceci (première ligne)
<?php get_header(); ?>
par ceci
<?php header('HTTP/1.1 404 Not Found', true, 404); header("Status:404 Not Found"); get_header(); ?>
Cette méthode est relativement “quick and dirty” (vite et vraiment sale pour l’occasion) mais bon, en même temps, rappelle-nous qu’on tente ici de se dépatouiller avec un hebergement free.fr… hum

