L'un de mes clients a récemment vu son site comparé aux meilleures pratiques en matière de sécurité, de référencement, d'expérience de l'utilisateur final, etc.
"Mettez une redirection permanente (HTTP 301) vers http://www.example.com sur http: //.example.com ".
Actuellement, il existe des enregistrements A pour www
et @
avec une redirection 301 lorsque le nom d'hôte demandé ne contient pas le préfixe www
(j'ai vérifié que cela fonctionne correctement), mais il y en a également des sous-domaines tels que webmail.example.com
et imap.example.com
etc.
Sans utiliser d'astérisque (*
) Un enregistrement à viser, comment puis-je résoudre ce problème?
J'ai toujours pensé que la partie du nom d'hôte ne pourrait jamais commencer ou se terminer par un arrêt complet, mais qu'elle était uniquement utilisée comme séparateur. Après vérification, IETF RFC 1035 déclare, p8, s2.3.1, Syntaxe du nom ":
Les étiquettes doivent respecter les règles applicables aux noms d’hôte ARPANET. Ils doivent commencer par une lettre, se terminer par une lettre ou un chiffre et avoir comme caractères intérieurs uniquement des lettres, des chiffres et un trait d'union.
Et tandis que le titre de la section utilise le mot préféré , le paragraphe à la s2.3 précédant le paragraphe ci-dessus indique clairement que cette syntaxe est obligatoire pour les utilisateurs connectés à Internet. systèmes.
Est-ce que quelqu'un croit que ce domaine commençant par un point, mais aucun sous-domaine ne peut être considéré comme valide en aucune circonstance? Si j'essaie de me connecter via HTTP, le message d'erreur suivant s'affiche:
La recherche du nom de domaine a échoué: http: //.example.com/
(Remarque: le nom de domaine réel a été remplacé par exemple.com dans l'ensemble de cette question)
Il s’avère que c’est effectivement un bogue dans leur système qui a introduit l’introduction des domaines .uk il ya un an en tant que domaine de premier niveau de code de pays (ccTLD) et non pas simplement en tant que domaine de second niveau (par exemple .co.uk, .org .uk, .ac.uk, etc.), n’avaient pas encore été pris en compte dans leur système.