Posted on 22 avril 2010 in Wordpress | 30 comments

-cet article est un brouillon mais comme il est utile et annoncé par un autre article je le mets en ligne avant de revenir plus clairement dessus (ajout d’images) –

NE TOUCHEZ PAS AUX PERMALIENS VIA WORDPRESS. PASSEZ PAR VOTRE BASE DE DONNÉES SQL

Non, nous les WordPressiens ne nous laisserons pas intimider par un hébergeur dans notre souci d'avoir des URL propres

Dans la majorité des cas, tenter de changer les permaliens dans votre tableau de réglages générera une belle erreur 500 dont vous ne sortirez au mieux qu’une demi-heure plus tard.
Sachez que le seul fait de cliquer sur le réglage « permaliens » dans WordPress génère cette erreur… Non seulement ne changez rien mais n’allez même pas visiter ce réglage. Alors pas de beaux permaliens avec Free ? Si.

Mais si vous lisez ceci c’est que vous êtes probablement déjà planté (pas vous, votre blog). Donc si cela vous est arrivé, commençons par vous sortir de là. Pour les autres sautez au paragraphe suivant.

Se sortir d’une erreur 500 suite à une tentative de changement de permaliens

vous devez supprimer par ftp, le fichier .htaccess généré par WordPress, vider le cache de votre navigateur, vous reconnecter puis remettre le réglage par défaut. Bien souvent plusieurs tentatives sont nécessaires puisque le fait de cliquer dans le tableau de bord sur ce réglage génère une erreur… donc vous devrez faire cette opération deux fois.

Changer les permaliens

Permaliens

Le seul fait de cliquer sur le réglage "permaliens" dans WordPress génère un Rewrite Rules dans votre fichier .httacces, ce que Free ne supporte pas

D’emblée je dois vous dire que certaines rares personnes disent avoir réussi à changer leur permaliens tout en étant hébergé chez Free via leur tableau de bord WordPress. Mais ils ne savent ni pourquoi ni comment, et le mode opératoire qui fonctionne pour eux n’est pas commun à tous. Autrement dit, plutôt aléatoire et bidouillage.

Certains arrivent à leur fin en choisissant comme structure personnalisée l’une de ces lignes:

1
2
3
/index.php/%postname%
/index.php/%category%/%postname%/
/index.php/%category%/%postname%-%post_id%
/index.php/%postname%
/index.php/%category%/%postname%/
/index.php/%category%/%postname%-%post_id%

Mais il faut savoir que même si ça fonctionne, la navigation sera du type : http://monsite.free.fr/index.php/nom-de-l’article.php et ce à condition que vous ayez rempli les champs catégorie et tag.

La seule méthode sûre et rapide pour changer les permaliens chez Free est passer directement par la console SQL phpmyadmin de votre hébergeur.

Et non pas via le tableau de bord de WordPress, parce que le mode Rewrite Rules est interdit chez Free. Or WordPress génère automatiquement un Rewrite lors du changement de permaliens, ce que vous pouvez voir dans .htaccess (lignes ajoutées).

Pour changer les permaliens, osez braver la console SQL et allez dans votre console SQL ou phpmyadmin. C’est-à-dire allez chez votre hébergeur dans votre espace accueil. Trouvez la console SQL (ou Base de données ou phpadmin). Go!
Vous voyez maintenant votre base de données.
Affichez la table wp-options. Une fois là, cherchez l’option permalink-structure.
Dans options_value de cette option, insérez la structure de permaliens que vous désirez. Dans le cas précis de Free, mettre au début de la structure personnalisée /index.php au début est impératif. Par exemple

1
/index.php/%category%/%postname%/
/index.php/%category%/%postname%/

Tant que vous y êtes, vous devez également choisir les préfixes pour la catégorie et le tag. Comme dans l’option du tableau de bord de WordPress. Là aussi on le fait via SQL dans wp-options. Dans wp_options, trouvez l’option nommée category_base. Cliquez sur le petit crayon pour modifier. Indiquez ce que vous voulez (attention, ne mettez jamais d’accent ni d’espace dans une url!). Par exemple categorie.
Maintenant, le préfixe du tag. Toujours dans wp_options, trouvez tag_base (probablement une page plus loin). Modifier selon votre choix, de la même façon. Mettez tag ou motcle (pas d’accent).