Donc.

Pour commencer, un truc affreux: un fichier .htaccess à la racine de mon répertoire (dans /~dammouia). Dedans, la ligne "ForceType application/x-httpd-php". Le problème c'est que du coup tous les fichiers vont être servis comme si c'était du PHP. Pour les fichiers texte c'est pas grave, tant qu'il n'y a pas de balises <? et ?> ils sortiront du préprocesseur PHP inchangés.
Le problème c'est pour les images et toutes ces conneries. Puis même, autant éviter de tout filer à PHP (CSS, HTML, youpi tiens mange petit PHP, ça t'occupera). Donc je rajoute dans chacun des sous-répertoires (oui c'est super crade) un fichier .htaccess si besoin, avec la ligne: "ForceType none", qui annule le ForceType du répertoire parent. Ça ne résoud bien sûr pas le problème pour les fichiers dudit répertoire parent (/~dammouia), mais c'est mieux que rien (et de toute façon celui-ci ne contient que des fichiers texte et des sous-répertoires, j'ai du bol).

OK c'est super, mais pourquoi forcer les fichiers à être lus comme du PHP ? Bah c'est ça la ruse. C'est parce que dans ~dammouia je mets un fichier nommé "blog" (enfin newblog ce soir, tant que le répertoire blog existe), qui est en fait un script PHP. J'aurais pu utiliser AddType, mais cette directive se base sur l'extension du fichier, donc hé ben oui c'est con mais là ça marche pas vu qu'il n'y a pas d'extension. C'est con la vie.

Donc voilà, le plus gros du boulot est fait, le script "blog" intercepte toutes les URL en /~dammouia/blog/*.

Après il est très bête: il récupère la valeur de $_SERVER['PHP_SELF'] (par exemple "/~dammouia/blog/blabla/coucou/toto"), en extrait la partie intéressante ("blog/blabla/coucou/toto") et la colle derrière le nouveau préfixe (ça devient donc "http://davux.asocial.info/blabla/coucou/toto"). Ensuite il envoie les headers et dit au browser de fermer la connexion (ça c'est pour empêcher IE de paniquer et de hurler au 404):


header("HTTP/1.1 301 Moved Permanently");
header("Location: $new"); # où $new est la nouvelle adresse
header("Connection: close");

Et voilà c'est tout. (super la chute)

Edit: Lunar vient de me signaler qu'on peut utiliser le mod_rewrite.... dans les .htaccess ! Bon ben tant pis, on va dire que sparave.