Heroku / GoDaddy: wyślij samą domenę na www [zamknięte]

142

Próbuję dowiedzieć się, jak sprawić, by sama domena mojej witryny przekierowywała na domenę www. Używam Heroku i mam domenę z GoDaddy. Z powodu Heroku moje rekordy A są już skonfigurowane jako:

@: 75.101.145.87

@: 75.101.163.44

@: 174.129.25.170

A mój CNAME www wskazuje na proxy.heroku.com.

Szukałem w całym Internecie, ale nie mogę znaleźć prostej, bezpłatnej odpowiedzi, jak mogę to przekierować. Niektóre odpowiedzi mówią o korzystaniu z płatnych usług, których nie chcę robić, a inne mówią o wchodzeniu i modyfikowaniu ustawień Heroku, ale tak naprawdę nie dają zbyt wiele wyjaśnień. W tej chwili, jeśli przejdziesz do mojej samej domeny, to tylko Heroku mówi, że nie ma takiej aplikacji, a jeśli przejdziesz do mojej domeny www, to moja aplikacja.

Andrew Latham
źródło
8
Heroku FAQ mówi tylko, jak wykonać przekierowanie z DNSimple. Ich strona pomocy zawiera linki do StackOverflow.
Andrew Latham,
32
Myślę, że odpowiedź Emila jest nieco szorstka w tej sprawie, ta strona jest źródłem informacji o rozwiązywaniu problemów, które napotkaliśmy na drodze programowania i to jest problem, który mam teraz! : D
Daniel Morris
Prawdopodobnie powinno to zostać zamknięte jako Dupe zamiast Off-Topic: stackoverflow.com/questions/16022324/ ...
Chris Moschini
2
@ChrisMoschini zaakceptowana odpowiedź na pytanie, do którego się odnosisz, nie działa w GoDaddy, ponieważ GoDaddy nie obsługuje rekordów ALIAS, tylko CNAME. Myślę, że to jest jego własne pytanie.
Topher Hunt
1
Cokolwiek A Records jest ustawione, nie ma możliwości skierowania samej domeny bezpośrednio do heroku. Mogliśmy tylko ustawić kierowanie, do wwwktórego wskazuje CNAME your-app-name.herokuapp.com.
Chetabahana

Odpowiedzi:

231

W GoDaddy użyj funkcji „Przekazywanie”, aby skonfigurować przekazywanie z yourdomain.comdo www.yourdomain.com. Dostęp do funkcji przekierowania można uzyskać w Menedżerze domen u dołu sekcji „Informacje o domenie”:

Przekierowanie domeny w GoDaddy

Jeśli to zrobisz, cały ruch do twojadomena.com zostanie przekierowany do CNAME aplikacji Heroku (co jest lepszym rozwiązaniem ).

Jednak jedna uwaga, jeśli jesteś na stosie Cedar , nie używaj proxy.heroku.comjako hosta swojego wwwCNAME. Zamiast tego użyj your-app-name.herokuapp.com. Te szczegóły są omówione tutaj .

GoDaddy określa również, że aby nazwa domeny była przekazywana dalej, jej rekord A musi wskazywać 64.202.189.170 lub musi mieścić się w następujących zakresach: 50.63.202.1 - 50.63.202.31 lub 184.168.221.1 - 184.168.221.31.

Ryan Daigle
źródło
14
Czy to powoduje ostrzeżenie / błąd, jeśli używasz SSL, jak twierdzi Heroku? powiedzieli, że jeśli nastąpi przekierowanie do https: // example.com, pojawi się ostrzeżenie.
Jaqx
2
@jaqx, to się dzieje ze mną, czy znalazłeś sposób, aby użytkownicy nie otrzymywali tego ostrzeżenia?
jackerman 09
3
@ jackerman09 Właśnie zmęczyły mnie kłopoty i przeszedłem na DNSimple
Jaqx
5
@Matt nie ma sposobu, aby to zrobić z GoDaddy. Skorzystaj z funkcji ALIAS / ANAME innych dostawców, takich jak DNSimple lub DNS Made Easy, jeśli tego potrzebujesz.
Ryan Daigle
3
@RyanDaigle Dzięki Ryan. Polecam każdemu opuszczenie GoDaddy z więcej niż jednego powodu . NameCheap.com jest tym, którego teraz używam. Są wspaniali i wspierają to, co próbowałem zrobić. Również NameCheap przyjmuje Bitcoin .
Matt
22

Możesz także użyć http://wwwizer.com, aby przekierować z samej domeny na swoją stronę www. W GoDaddy w menedżerze DNS pod rekordem A w nagłówku @ wpisz 174.129.25.170. Będą automatycznie przekierowywać z samej domeny do domeny z www. Przed tym.

TMilligan
źródło
5
po co płacić komuś innemu wynagrodzenie?
Benjamin
4
Pan, panie, jest ratownikiem. @Vezu: przekazywanie non-ssl jest całkowicie bezpłatne. Po prostu wskaż swój rekord A samej domeny na ten adres IP, a przekieruje przeglądarkę do domeny www. Nie potrzebujesz nawet konta u nich.
P O'Conbhui
Próbuję włączyć wwwizer dla swojego, aw moim rekordzie A hosta jest oznaczony jako „@”, a punkty to 174.129.25.170, zgodnie z instrukcjami wwwizera, ale otrzymuję stronę z komunikatem o błędzie, gdy odwiedzam moją samą domenę! Czy zrobiłem to poprawnie?
tx291
7

W edytorze stref DNS GoDaddy będziesz chciał skonfigurować swój rekord CNAME www, aby wskazywał na @. W swoim rekordzie A użyjesz symbolu wieloznacznego (*), aby wskazać adres IP, i drugiego rekordu A, który używa @ jako hosta, który będzie również wskazywał na adres internetowy. Tą drogą,

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

wprowadź opis obrazu tutaj

Często Zadawane Pytania

Czy mogę wskazać * .mydomain.com na moją aplikację Heroku?

Tak, korzystając z bezpłatnej funkcji Domeny niestandardowe w Heroku, możesz wskazać swoją aplikację w postaci domeny z symbolem wieloznacznym.

Jakich adresów IP należy użyć, aby skierować moją domenę niestandardową do Heroku?

Stos routingu Heroku korzysta z kolekcji adresów IP, które mogą ulec zmianie w dowolnym momencie, a używanie rekordów A do wskazywania aplikacji nie jest obsługiwane. Aby Twoja domena zawsze prawidłowo wskazywała siatkę routingu, skonfiguruj subdomeny (np. Www w www.example.org), używając rekordu CNAME:

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

Domeny nagie (lub nagie / wierzchołkowe) (np. Example.org) należy unikać ze względu na ich dostępność i konsekwencje związane z czasem działania.

Dlaczego nie mogę dodać subdomain.mydomain.com do mojej aplikacji?

W niektórych przypadkach próby dodania domeny niestandardowej (takiej jak subdomena.moja_domena.com) dla aplikacji mogą spowodować wystąpienie następującego błędu:

 ! mydomain.com is owned by another user

Wszystkie aplikacje dla danej domeny podstawowej muszą być własnością tego samego konta Heroku. Powyższy błąd oznacza, że ​​ktoś inny dodał już domenę niestandardową mydomain.com do jednej ze swoich aplikacji.

kobaltz
źródło
1
Czy adres IP i adres internetowy Heroku to nazwa_aplikacji.heroku.com czy proxy.heroku.com?
Andrew Latham,
1
Powinieneś naprawdę spojrzeć na ten artykuł, devcenter.heroku.com/articles/custom-domains , ponieważ obejmuje on wszystko, co chcesz zrobić.
kobaltz
1
To podejście kieruje CNAME wwwna @, który nadal kieruje ruch do stałych adresów IP (co ma te same wady co rekordy A). Użyj przekierowania najwyższego poziomu, w GoDaddy nazywa się to zamiast tego „przekazywaniem”.
Ryan Daigle,
5

Jeśli masz skonfigurowane adresy IP w samej domenie, a Twoja nazwa www została przypisana do yourappname.herokuapp.com, wszystko, co musisz zrobić, to użyć czegoś takiego jak RackRewrite w swojej aplikacji, aby przekierować żądania, gdy dotrą do Twojej aplikacji.

To, co chcesz skonfigurować, to każde żądanie do samej domeny jest przekierowywane na Twój adres www. Po wykonaniu instrukcji instalacji dodaj inicjalizator w 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'

Oznacza to, że jeśli żądany adres URL nie jest www.twojadomena.com, przekierowuje go 301 na www.yuordomain.com, ale tylko wtedy, gdy działa w środowisku produkcyjnym.

John Beynon
źródło
1
W idealnym przypadku odbywa się to na poziomie DNS, unikając przechodzenia przez stałe adresy IP Heroku. Poza tym nie masz pewności, czy to aplikacja Ruby, czy nie?
Ryan Daigle
Ryan, przekierowań nie można wykonać na poziomie DNS. Są zawsze wykonywane przez HTTP.
Emil Vikström,
Dlaczego jako inicjator i dlaczego nie po prostu umieścić go w konfiguracji środowiska produkcyjnego?
ckarbass
Czy kiedy używam heroku + mojej domeny niestandardowej, muszę mieć jakikolwiek rekord A wskazujący na heroku? Jeśli tak, jaka jest jego wartość?
Alan Coromano
3

Aby to działało z Network Solutions, wykonaj następujące czynności:

Network Solutions kieruje twojadomena.com do www.twojadomena.com. Oto jak.

  1. W Menedżerze kont wybierz Moje nazwy domen

  2. Wybierz nazwę domeny, którą chcesz zarządzać

  3. W zielonym polu wybierz Change Where Domain Points

  4. Wybierz Advanced DNS , a następnie Continue

  5. Najpierw edytuj rekordy A, wybierając Edytuj rekordy A

    W polu „@ none” wprowadź następujący adres IP 205.178.189.129, wyczyść rekordy dla „www” i „* (All others)” , a następnie wybierz Kontynuuj

  6. Po drugie, edytuj aliasy hostów (rekordy CNAME), wybierając opcję Edytuj rekordy CNAME

    Wpisz „www” w kolumnie Alias

    Pozostaw TTL ustawione na 7200, ale w tym samym wierszu wprowadź serwery nazw udostępniane przez usługę blogowania w sekcji Inny host [IE POSTĘPUJ TERAZ Z INSTRUKCJĄ HEROKU www -> yourapp.herokuapp.com (Cedar Stack)]

    Wybierz Kontynuuj

Teraz poczekaj i sprawdź domeny za pomocą następującego polecenia terminala:

host domain.com
host www.domain.com
blnc
źródło