Heroku / GoDaddy: Nackte Domain an www senden [geschlossen]

142

Ich versuche herauszufinden, wie ich die nackte Domain für meine Website dazu bringen kann, zur www-Domain umzuleiten. Ich benutze Heroku und habe die Domain von GoDaddy. Aufgrund von Heroku sind meine A-Datensätze bereits wie folgt eingerichtet:

@: 75.101.145.87

@: 75.101.163.44

@: 174.129.25.170

Und mein www CNAME zeigt auf proxy.heroku.com.

Ich habe im ganzen Internet gesucht, kann aber keine einfache, kostenlose Antwort finden, wie ich diese Weiterleitung durchführen kann. Einige Antworten diskutieren die Verwendung kostenpflichtiger Dienste, die ich nicht tun möchte, und andere sprechen davon, Heroku-Einstellungen zu ändern, geben dann aber nicht wirklich viele Erklärungen. Im Moment, wenn Sie zu meiner nackten Domain gehen, sagt Heroku nur, dass es keine solche App gibt, während es meine App ist, wenn Sie zu meiner WWW-Domain gehen.

Andrew Latham
quelle
8
In den Heroku-FAQ wird nur angegeben, wie die Umleitung mit DNSimple durchgeführt wird. Ihre Support-Seite ist mit StackOverflow verknüpft.
Andrew Latham
32
Ich denke, Emils Reaktion darauf ist etwas hart. Diese Seite ist eine Ressource zur Lösung von Problemen, die wir auf dem Weg der Programmierung haben, und das ist ein Problem, das ich gerade habe! : D
Daniel Morris
Dies sollte wahrscheinlich als Dupe statt Off-Topic geschlossen werden: stackoverflow.com/questions/16022324/…
Chris Moschini
2
@ChrisMoschini Die akzeptierte Antwort auf die Frage, auf die Sie verweisen, funktioniert auf GoDaddy nicht, da GoDaddy keine ALIAS-Datensätze unterstützt, sondern nur CNAME. Das ist eine eigene Frage, denke ich.
Topher Hunt
1
Was auch immer A Records eingestellt ist, es gibt keine Möglichkeit, eine nackte Domain direkt auf Heroku zu zeigen. Wir konnten nur festlegen, dass es weitergeleitet wird, auf wwwdas CNAME verweist your-app-name.herokuapp.com.
Chetabahana

Antworten:

231

Verwenden Sie auf GoDaddy die Funktion "Weiterleitung", um eine Weiterleitung von yourdomain.combis einzurichten www.yourdomain.com. Auf die Weiterleitungsfunktion kann im Domänenmanager unten im Abschnitt "Domäneninformationen" zugegriffen werden:

Domainweiterleitung in GoDaddy

Wenn Sie dies tun, wird der gesamte Datenverkehr zu yourdomain.com an die Heroku-App CNAME weitergeleitet (was der bessere Ansatz ist ).

Ein Hinweis: Wenn Sie sich jedoch auf dem Cedar-Stapel befinden, verwenden Sie ihn nicht proxy.heroku.comfür den Host Ihres wwwCNAME. Verwenden Sie stattdessen your-app-name.herokuapp.com. Diese Details werden hier behandelt .

GoDaddy gibt außerdem an, dass der A-Eintrag Ihres Domainnamens auf 64.202.189.170 verweisen muss oder zwischen den folgenden Bereichen liegen muss: 50.63.202.1 - 50.63.202.31 oder 184.168.221.1 - 184.168.221.31.

Ryan Daigle
quelle
14
Erzeugt dies eine Warnung / einen Fehler, wenn Sie SSL verwenden, wie Heroku behauptet? Sie sagten, wenn https: // example.com umgeleitet wird, gibt es eine Warnung.
Jaqx
2
@jaqx, das passiert mir. Hast du einen Weg gefunden, um zu vermeiden, dass Benutzer diese Warnung erhalten?
Jackerman09
3
@ jackerman09 Ich habe gerade die Mühe satt und wechselte zu DNSimple
Jaqx
5
@Matt gibt es keine Möglichkeit, dies mit GoDaddy zu tun. Verwenden Sie die ALIAS / ANAME-Funktion anderer Anbieter wie DNSimple oder DNS Made Easy, wenn Sie dies benötigen.
Ryan Daigle
3
@ RyanDaigle Danke Ryan. Ich empfehle jedem, Godaddy aus mehr als einem Grund zu verlassen . NameCheap.com ist der, den ich jetzt benutze. Sie sind großartig und unterstützen das, was ich versucht habe. Außerdem akzeptiert NameCheap Bitcoin .
Matt
22

Sie können auch http://wwwizer.com verwenden , um von Ihrer nackten Domain zu Ihrem www weiterzuleiten. In GoDaddy im DNS-Manager unter dem A-Eintrag in der Überschrift @ geben Sie in 174.129.25.170 ein. Sie werden automatisch von der nackten Domain zu einer mit www umgeleitet. vor.

TMilligan
quelle
5
Warum jemand anderem eine weitere Gebühr zahlen?
Benjamin
4
Sie, Sir, sind ein Lebensretter. @Vezu: Nicht-SSL-Weiterleitung ist völlig kostenlos. Sie zeigen einfach Ihren A-Eintrag für die nackte Domain auf diese IP-Adresse und der Browser wird auf die WWW-Domain umgeleitet. Sie brauchen nicht einmal ein Konto bei ihnen.
P O'Conbhui
Ich versuche, wwwizer für meine zu integrieren, und in meinem A-Datensatz habe ich den Host als "@" und die Punkte als 174.129.25.170 gemäß den Anweisungen von wwwizer, aber ich erhalte die Fehlermeldungsseite, wenn ich meine nackte Domain besuche! Habe ich das richtig gemacht ??
tx291
7

Im DNS-Zonen-Editor von GoDaddy möchten Sie Ihren CNAME-Eintrag www so konfigurieren, dass er auf @ zeigt. In Ihrem A-Datensatz verwenden Sie einen Platzhalter (*), um auf die IP-Adresse zu verweisen, und einen zweiten A-Datensatz, der @ als Host verwendet, der auch auf die Webadresse verweist. Diesen Weg,

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

Geben Sie hier die Bildbeschreibung ein

Häufig gestellte Fragen

Kann ich * .mydomain.com auf meine Heroku-App verweisen?

Ja, mit der kostenlosen Funktion "Benutzerdefinierte Domänen" von Heroku können Sie eine Platzhalterdomäne auf Ihre Anwendung verweisen.

Welche IP-Adressen sollte ich verwenden, um meine benutzerdefinierte Domain auf Heroku zu verweisen?

Der Heroku-Routing-Stack verwendet eine Sammlung von IP-Adressen, die sich jederzeit ändern können. Die Verwendung von A-Datensätzen zum Verweisen auf Ihre App wird nicht unterstützt. Um sicherzustellen, dass Ihre Domain immer korrekt auf das Routing-Mesh verweist, konfigurieren Sie Subdomains (z. B. www in www.example.org) mithilfe eines CNAME-Datensatzes:

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

Nackte (oder nackte / Apex-) Domains (z. B. example.org) sollten aufgrund ihrer Verfügbarkeit und der Folgen für die Verfügbarkeit vermieden werden.

Warum kann ich subdomain.mydomain.com nicht für meine App hinzufügen?

In einigen Fällen kann der Versuch, eine benutzerdefinierte Domain (z. B. subdomain.mydomain.com) für eine App hinzuzufügen, zu einem Fehler wie dem folgenden führen:

 ! mydomain.com is owned by another user

Alle Anwendungen für eine bestimmte Basisdomäne müssen demselben Heroku-Konto gehören. Der obige Fehler bedeutet, dass jemand anderes einer seiner Apps bereits eine benutzerdefinierte Domain von mydomain.com hinzugefügt hat.

Kobaltz
quelle
1
Wäre die IP-Adresse und Webadresse für Heroku appname.heroku.com oder proxy.heroku.com?
Andrew Latham
1
Sie sollten sich diesen Artikel devcenter.heroku.com/articles/custom-domains wirklich ansehen , da er alles abdeckt, was Sie tun möchten .
Kobaltz
1
Dieser Ansatz verweist den CNAME wwwauf @, das den Datenverkehr weiterhin an feste IP-Adressen weiterleitet (die dieselben Nachteile wie A-Datensätze haben). Verwenden Sie eine Umleitung der obersten Ebene. Auf GoDaddy wird dies stattdessen als "Weiterleitung" bezeichnet.
Ryan Daigle
5

Wenn Sie die IP-Adressen in Ihrer nackten Domain eingerichtet und Ihren WWW-Namen auf yourappname.herokuapp.com festgelegt haben, müssen Sie in Ihrer Anwendung lediglich RackRewrite verwenden , um die Anforderungen umzuleiten, wenn sie bei Ihrer Anwendung ankommen.

Was Sie einrichten möchten, ist, dass jede Anfrage an die nackte Domain an Ihre WWW-Adresse umgeleitet wird. Nachdem Sie die Installationsanweisungen befolgt haben, fügen Sie einen Initialisierer in config / initializers hinzu

 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'

Das heißt, wenn die angeforderte URL nicht www.yourdomain.com lautet, leiten Sie sie auf www.yuordomain.com um, aber nur, wenn sie in der Produktion ausgeführt wird.

John Beynon
quelle
1
Im Idealfall erfolgt dies auf DNS-Ebene, ohne die festen IP-Adressen von Heroku zu durchlaufen. Sie sind sich nicht sicher, ob dies eine Ruby-App ist oder nicht?
Ryan Daigle
Ryan, Weiterleitungen können nicht auf DNS-Ebene durchgeführt werden. Sie werden immer per HTTP durchgeführt.
Emil Vikström
Warum als Initialisierer und warum nicht einfach in die Konfiguration der Produktionsumgebung einfügen?
Karbass
Muss ich einen A-Eintrag haben, der auf Heroku verweist, wenn ich Heroku + meine Kundendomäne verwende? Wenn ja, welchen Wert hat es?
Alan Coromano
3

Damit dies mit Netzwerklösungen funktioniert, gehen Sie wie folgt vor:

Netzwerklösungen, die yourdomain.com auf www.yourdomain.com verweisen. Hier ist wie.

  1. Innerhalb Account Manager , wählen Sie My Domain Names

  2. Wählen Sie den Domainnamen aus, den Sie verwalten möchten

  3. Wählen Sie im grünen Feld Ändern, wo Domänenpunkte geändert werden

  4. Wählen Sie Erweitertes DNS und dann Weiter

  5. Bearbeiten Sie zunächst die A-Datensätze, indem Sie A-Datensätze bearbeiten auswählen

    Geben Sie für "@ none" die folgende IP-Adresse 205.178.189.129 ein, löschen Sie die Datensätze für "www" und "* (Alle anderen)" und wählen Sie dann Weiter

  6. Zweitens bearbeiten Sie die Host-Aliase (CNAME-Datensätze), indem Sie CNAME-Datensätze bearbeiten auswählen

    Geben Sie "www" in die Spalte "Alias" ein

    Lassen Sie TTL auf 7200 eingestellt, geben Sie jedoch in derselben Zeile die vom Blogging-Dienst bereitgestellten Nameserver im Abschnitt " Anderer Host " ein.

    Wählen Sie Weiter

Warten Sie nun und überprüfen Sie die Domain (s) mit dem folgenden Terminalbefehl:

host domain.com
host www.domain.com
blnc
quelle