Merci WordPress…

L’article précédent, « Si t’as pas d’ami, prends un cURL ! » m’a donné quelques mots de tête. Je me demandais bien où j’avais pu merder pour n’obtenir qu’une horrible page d’erreur HTTP 403, Forbidden… Après avoir essayé toutes les solutions données sur le web, comme désactiver les plugins un par un, faire un chmod sur les dossiers et fichiers, etc etc, j’ai finalement eu une révélation…

Dans la config de WordPress, j’ai choisi le modèle /%year%/%monthnum%/%day%/%postname%/ pour les permaliens, qui font ce qu’on appelle de l’URL rewriting (en fait, l’URL de cet article n’existe pas vraiment : il n’y a pas de répertoire /2016/12/12/le-nom-du-post sur le serveur. C’est Apache, via les directives créées par WordPress pour le module mod_rewrite, qui transforme cette URL, et appelle la page index.php en indiquant l’article. Cette dernière fait le boulot d’affichage). Je n’ai pas eu de problème jusqu’à l’article précédent, tous les anciens articles fonctionnaient sans problème, sauf celui-là qui m’affichait une jolie erreur 403…

J’ai farfouillé sur le web à la recherche d’une solution, sans pouvoir les tester toutes faute d’accès au serveur depuis le boulot (ces infâmes admins chez Big ont bloqué le FTP. Il y a bien un proxy qui autorise le FTP, mais il faut montrer patte blanche pour y accéder…). Chemin faisant, je me suis toutefois rendu compte qu’en changeant le modèle de permalien (pour les formes numériques), j’arrivais à lire mon article sans avoir cette fichue erreur 403.

Une fois rentré à la maison, j’ai suivi les solutions consistant à modifier les droits sur les dossiers et fichiers, sans plus de succès. J’ai regardé de près le fichier de directives .htaccess, l’ai supprimé, recréé en changeant de modèle de permaliens, que nenni, rien à faire… Voilà à quoi ça ressemble, si vous vous posez la question (je passe sur la signification de chaque directive, vous n’avez qu’à lire la doc de mod_rewrite, hinhinhin) :

# 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

Bref, guère avancé par ce que je vois, je décide de faire un petit test, et de fait, je crée un article bidon nommé « test » (comme c’est original). Et bim, ça marche… Et le permalien est de la forme désirée… Hum, me dis-je. Est-ce qu’à tout hasard… Non, cela ne se peut… Je… Horreur et stupéfaction !

Les entrailles de la bêêêête

Le permalien de mon article était (était, parce que j’ai du le changer, hein) http://dede.laserforce.org/2016/12/12/si-tas-pas-dami-prends-un-curl/. Rien d’extravagant, c’est le titre mais un peu nettoyé de l’apostrophe, de la virgule et des espaces, qui n’ont rien à faire dans une URL. Tiens tiens, URL.. cURL…

Je décide donc de modifier le permalien de mon article en un truc plus simple : http://dede.laserforce.org/2016/12/12/test. Bingo, ça marche. Je modifie encore plusieurs fois, jusqu’à arriver sur http://dede.laserforce.org/2016/12/12/si-tas-pas-dami-prends-un-cul/ (oui, je sais… bah quoi, fallait bien tester à fond !). Et lorsque j’ai rajouté le R de cuRl… patatras, erreur 403.

Donc sachez-le, visiblement ça merdoie sévèrement si vous avez le mot « URL » dans une URL !

Résultat des courses, j’ai du raccourcir le permalien (j’aurais pu laisser si-tas-pas-dami-prends-un-cul et je suis sûr que personne n’aurait vu le truc !)…

Et tu crois que c’est écrit quelque part sur le web des internets ? Niet, tovaritch, nada, peau d’balle. Il aura encore fallu que mon intuition masculine donne le meilleur d’elle-même pour que je puisse gagner cette bataille dans mon éternel combat contre la machine. Et ce @$#&!! de WordPress, qui m’aura fichu la migraine.

Moi je dis fuck à la migraine (image d’illustration, c’est pas moi sur la photo) (mais la migraine je lui dis fuck quand même)

Montre ton amour pour Dédé en partageant cet article !

Laisser un commentaire