Comment utiliser des noms de domaines accentués dans votre config apache ?
March 1, 2012
Depuis quelques temps, vous pouvez acheter des noms de domaines contenant des accents. Dans le cadre du développement de jepoetiz, j'ai voulu tester ce type de nom de domaine, en achetant jepoétise.com (ô quelle audace ^).
En passant par ovh, le processus est le même que pour un nom de domaine "classique".
Le hic? Ma config apache interprète mal les accents "tels quels".
Comment paramètrer apache2 pour votre nom de domaine accentué?
En fait, les noms de domaines accentués sont en quelques sortes "traduit", en un autre nom de domaine de type xn--domain-aa.tld. Moins glamour, certes, mais pratique dans notre cas.
(comment ça vous ne lisez pas l'arabe ??)
Il faut, en fait, "traduire" votre nom de domaine en punycode. J'avais commencé à chercher comment effectuer cette "traduction" "manuellement", mais... sans succès (honte à moi ?). J'ai donc découvert un convertisseur en ligne ;) Il s'agit du site charset.org.
Une fois votre nom de domaine transcrit obtenu (par exemple pour jepoétise.com, il s'agit de xn--jepotise-e1a.com ), il vous suffit de l'utiliser dans apache tel quel.
Par exemple, pour jepoétise.com, dans votre ligne ServerAlias, il suffirait d'ajouter xn--jepotise-e1a.com
Côté PHP, si vous regardez ce que vous donne $_SERVER['SERVER_NAME'] vous retrouverez ce nom transcrit, et non pas le nom de domaine accentué (ce qui vous évitera de vous évitera de trop réfléchir à l'encodage ^^).
En résumant, donc :
1) Obtenez la "traduction" de votre nom de domaine accentué en punycode. Via Charset.org
2) Utilisez simplement le nom transcrit dans vos différents fichiers de configuration.
Cette manip' vaut aussi pour nginx.