Heroku / GoDaddy: envoyer un domaine nu à www

J’essaie de comprendre comment obtenir le domaine nu pour que mon site Web redirige vers le domaine www. J’utilise Heroku et j’ai le domaine de GoDaddy. Grâce à Heroku, mes enregistrements A sont déjà configurés comme suit:

@: 75.101.145.87

@: 75.101.163.44

@: 174.129.25.170

Et mon www CNAME pointe vers proxy.heroku.com.

J’ai cherché sur Internet, mais je ne trouve pas de réponse simple et gratuite sur la manière de procéder à cette redirection. Certaines réponses traitent de l’utilisation de services payants, ce que je ne veux pas faire, et d’autres parlent d’entrer et de modifier les parameters Heroku, mais ne donnent pas vraiment beaucoup d’explications. En ce moment, si vous allez dans mon domaine nu, c’est juste Heroku qui dit qu’aucune application de ce type n’existe, alors que si vous allez sur mon domaine www, c’est mon application.

Sur GoDaddy, utilisez la fonction “Transfert” pour configurer un transfert de yourdomain.com vers www.yourdomain.com . La fonctionnalité de transfert est accessible dans le gestionnaire de domaines au bas de la section “Informations sur le domaine”:

Transfert de domaine dans GoDaddy

Si vous faites cela, tout le trafic vers votre domaine.com sera acheminé vers l’application CNAME Heroku (qui est la meilleure approche ).

Une remarque, cependant, si vous êtes sur la stack Cedar, n’utilisez pas proxy.heroku.com pour l’hôte de votre www CNAME. Utilisez plutôt your-app-name.herokuapp.com . Ces détails sont couverts ici .

GoDaddy spécifie également que pour que votre nom de domaine soit transmis, son enregistrement A doit être pointé sur 64.202.189.170 ou se situer entre les plages suivantes: 50.63.202.1 – 50.63.202.31 ou 184.168.221.1 – 184.168.221.31.

Vous pouvez également utiliser http://wwwizer.com pour transférer de votre domaine nu vers votre site www. Dans GoDaddy dans le gestionnaire DNS sous l’enregistrement A dans le type d’en-tête @ dans 174.129.25.170. Ils redirectont automatiquement du domaine nu vers un avec www. devant elle

Dans l’éditeur de zone DNS de GoDaddy, vous souhaiterez configurer votre enregistrement CNAME www pour qu’il pointe vers @. Dans votre enregistrement A, vous utiliserez un caractère générique (*) pour désigner l’adresse IP et un second enregistrement A utilisant @ comme hôte qui pointera également vers l’adresse Web. Par ici,

 subdomain1.example.com will forward to your IP www.example.com will forward to your IP silly.example.com will forward to your IP anything.example.com will forward to your IP 

entrer la description de l'image ici

Questions fréquemment posées

Puis-je indiquer * .mydomain.com sur mon application Heroku?

Oui, en utilisant la fonctionnalité gratuite de domaines personnalisés de Heroku, vous pouvez pointer un domaine générique vers votre application.

Quelles adresses IP dois-je utiliser pour diriger mon domaine personnalisé vers Heroku?

La stack de routage Heroku utilise une collection d’adresses IP pouvant changer à tout moment et l’utilisation des enregistrements A pour pointer vers votre application n’est pas prise en charge. Pour vous assurer que votre domaine pointe toujours correctement vers le maillage de routage, configurez des sous-domaines (par exemple, www dans http://www.example.org) en utilisant un enregistrement CNAME:

 If the app is on… Then CNAME the subdomain to Bamboo yourapp.heroku.com Cedar yourapp.herokuapp.com 

Les domaines nus (ou bare / apex) (par exemple example.org) doivent être évités en raison de leur disponibilité et des conséquences sur le temps de disponibilité.

Pourquoi ne puis-je pas append subdomain.mydomain.com à mon application?

Dans certains cas, les tentatives d’ajout d’un domaine personnalisé (comme subdomain.mydomain.com) pour une application peuvent entraîner une erreur comme celle-ci:

  ! mydomain.com is owned by another user 

Toutes les applications d’un domaine de base donné doivent appartenir au même compte Heroku. L’erreur ci-dessus signifie que quelqu’un d’autre a déjà ajouté un domaine personnalisé mydomain.com à l’une de ses applications.

Si vous avez les adresses IP configurées sur votre domaine nu et votre nom de domaine www à votre nomapplication.herokuapp.com, il vous suffit d’utiliser quelque chose comme RackRewrite dans votre application pour redirect les requêtes lorsqu’elles arrivent à votre application.

Ce que vous voulez configurer, c’est que toute demande adressée au domaine nu soit redirigée vers votre adresse www. Après avoir suivi les instructions d’installation, ajoutez un initialiseur dans config / initializers

  ApplicationName::Application.config.middleware.insert_before(Rack::Lock, Rack r301 %r{.*}, 'http://www.yourdomain.com$&', :if => Proc.new {|rack_env rack_env['SERVER_NAME'] != 'www.yourdomain.com' } end if Rails.env == 'production' 

Ce qui veut dire que si l’URL demandée n’est pas http://www.votredomaine.com, alors 301 le redirige vers le site http://www.yuordomain.com, mais uniquement s’il est en cours de production.

Pour que cela fonctionne avec Network Solutions, procédez comme suit:

Network Solutions pointant yourdomain.com vers http://www.yourdomain.com. Voici comment.

  1. Dans Account Manager , sélectionnez Mes noms de domaine

  2. Sélectionnez le nom de domaine que vous souhaitez gérer

  3. Dans la zone verte, sélectionnez Modifier les points de domaine

  4. Sélectionnez DNS avancé , puis Continuer

  5. Tout d’abord, modifiez les enregistrements A en sélectionnant Modifier les enregistrements.

    Pour le “@ none”, entrez l’adresse IP suivante 205.178.189.129, effacez les enregistrements pour “www” et “* (Tous les autres)” , puis sélectionnez Continuer

  6. Deuxièmement, modifiez les alias d’hôte (enregistrements CNAME) en sélectionnant Modifier les enregistrements CNAME.

    Entrez “www” dans la colonne Alias

    Laissez TTL défini sur 7200 mais sur la même ligne, entrez les serveurs de noms fournis par le service de blogs dans la section Other Host [IE SUIVEZ LES INSTRUCTIONS HEROKU MAINTENANT www -> yourapp.herokuapp.com (Cedar Stack)]

    Sélectionnez Continuer

Maintenant, attendez et vérifiez le ou les domaines avec la commande de terminal suivante:

 host domain.com host www.domain.com