web-dev-qa-db-fra.com

Est-il possible d'avoir un enregistrement DNS CNAME pointant vers une URL avec un chemin?

J'ai enregistré plusieurs domaines pour mes nièces et mes neveux, l'idée étant de créer de petites pages Web statiques pour eux, afin qu'ils puissent dire "Regardez mon site Web!".

En termes d’hébergement, j’utilise expressjs sur Heroku, pour servir des pages statiques.

Ce que je veux faire, c'est avoir:

http://suzy-derkins.space        -->    my-herokuapp.herokuapp.com/static/suzy
http://calvin-is-trouble.space   -->    my-herokuapp.herokuapp.com/static/calvin

Je peux maintenant utiliser un enregistrement CNAME pour pointer chacun de mes domaines vers my-herokuapp.herokuapp.com, mais un enregistrement CNAME ne permet pas une URL complète.

Je pourrais ajouter une redirection non masquée, de sorte que

http://suzy-derkins.space redirige vers https://suzy-derkins.space/static/suzy, mais c'est moche.

Je ne souhaite pas utiliser une redirection d'URL masquée, car cela pose des problèmes sur le mobile et que l'utilisateur appuie sur un lien, la nouvelle page reste masquée.

J'aimerais également conserver la possibilité d'ajouter des pages supplémentaires, par exemple:

http://my-herokuapp.herokuapp.com/static/suzy/my-favourite-things être représenté par http://suzy-derkins.space/my-favourite-things.

Quel type de disques est-ce que j'utilise pour faire cela?

3
dwjohnston

Les enregistrements DNS ne peuvent à eux seuls faire ce que vous voulez. Les enregistrements DNS pointent uniquement les noms d’hôte sur les adresses IP (ou, dans le cas de CNAME, sur d’autres noms d’hôte).

Vous devez configurer votre serveur pour le gérer correctement.

Un moyen est d'émettre des redirections. Je suppose que vous pensez que c'est moche parce que l'URL change.

Une autre méthode consiste à configurer des "hôtes virtuels" avec un contenu différent pour chacun de ces noms d'hôtes. Je n'ai jamais utilisé Heroku auparavant, mais il semble que vous puissiez y ajouter plusieurs domaines personnalisés: https://devcenter.heroku.com/articles/custom-domains

Dans une application unique avec plusieurs noms d'hôte pointés, vous pouvez généralement distinguer le nom d'hôte et programmer votre application pour qu'elle agisse en conséquence. Je n'ai pas été capable de comprendre comment faire cela à Heroku, mais cela devrait faire partie de la requête HTTP. Il est envoyé sous l'en-tête HTTP Host:.

1