Comme je le fais de temps en
temps, j'ai changé le serveur Web qui héberge ce site et ce blog
(c'est maintenant une Dedibox XC, auquel j'ai donné le
nom de betelgeuse.gro-tsen.net
). Normalement, le
changement devrait être totalement transparent (je n'ai cassé le
système de commentaires de ce blog que pendant quelques minutes), mais
il se peut que quelque chose m'ait échappé, parce que le nombre de
choses qui tournent sur ce serveur et qu'il faut migrer dans le bon
ordre en pensant à tout est relativement élevé (entre le serveur
Tomcat qui sert maintenant à
fournir des pages dynamiques, le système de commentaires de ce blog,
le serveur Git qui réside sur le
même serveur, les autres scripts CGI en tout genre, le
tracker BitTorrent pour les quelques fichiers que je distribue par ce
protocole, et quelques bizarreries comme un
microscopique site accessible
uniquement en IPv6, cela fait un nombre assez pénible
de fichiers de config à régler correctement).
(À vrai dire, je me suis levé aujourd'hui avec un mal de tête épouvantable, je me suis dit que j'étais trop fatigué pour réfléchir, et j'ai préféré faire de l'informatique que faire des maths : je ne suis pas persuadé que ça ait amélioré mon mal de tête.)
À cette occasion, j'ai jeté un coup d'œil dans les logs de mon
serveur Web, et je suis impressionné par le nombre de requêtes
bizarres qui s'y trouvent. Par
exemple, Bing me demande
régulièrement des choses
comme /%7Edavid///lit/fourshort.html
(le fichier qui
existe vraiment
est /~david/lit/fourshort.html
) :
le %7E
est une autre façon d'écrire ~
— en
principe ça ne devrait pas faire de différence, sauf qu'en
fait on ne sait jamais bien qui est censé faire la substitution —,
mais ce qui est mystérieux dans l'histoire c'est comment il a inventé
les 3 /
consécutifs. Bon, c'est assez facile de demander
à Apache de le rediriger sur une adresse plus normale (encore qu'il y
a des interactions subtiles entre le mécanisme de
redirection/réécriture d'Apache et son mécanisme
de négociation
de contenu[#]), mais ce
genre de choses fait penser soit que j'ai laissé traîner un lien mal
écrit quelque part, soit que Bing est cassé dans sa façon de faire des
résolutions de liens relatifs. Comment savoir ?
Dans le même genre, je me souviens qu'à l'époque lointaine où ce
site était hébergé à l'ENS, j'utilisais des
fichiers SHTML,
et notamment ma page principale
s'appelait /home/madore/index.shtml
— et voilà que
quelqu'un avait inventé un lien /home/madore/index.shtml/
(avec un /
à la fin), pour lequel Apache servait le même
contenu, et du coup tous les liens relatifs étaient cassés : du
genre, math/
pointait
vers /home/madore/index.shtml/math/
au lieu de
juste /home/madore/math/
et cela renvoyait toujours vers
la même page à cause du index.shtml
, qui du coup
contenait de nouveau un lien math/
qui faisait que le
moteur de recherche allait
chercher /home/madore/index.shtml/math/math/
et ainsi de
suite indéfiniment. Bref, dès qu'une URL est servie sous
un nom non-canonique, ça peut être une source de tracas.
[#] À titre d'exemple,
j'avais dans mon .htaccess
une ligne du
type : RedirectMatch seeother /(.*david)/pages_new.html
/$1/weblog/
mais j'ai découvert qu'elle ne fonctionnait pas à
cause de la présence d'un fichier pages_new.html.en~
(un
backup Emacs) qui traînait : si quelqu'un peut m'expliquer la logique
de la chose…