2012-07-15 13 views
130

Próbuję dowiedzieć się, jak uzyskać nagie domeny do mojej witryny, aby przekierować do domeny www. Używam Heroku i mam domenę od GoDaddy. Ze względu Heroku, moje rekordy A są już skonfigurowane jako:Heroku/GoDaddy: wyślij nagą domenę na www

@: 75.101.145.87

@: 75.101.163.44

@: 174.129.25.170

A moja www CNAME wskazuje proxy.heroku.com.

Szukałem w całym Internecie, ale nie mogę znaleźć prostej, bezpłatnej odpowiedzi na pytanie, jak mogę to przekierować. Niektóre odpowiedzi omawiają korzystanie 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 wielu wyjaśnień. Teraz, jeśli przejdziesz do mojej nagiej domeny, to tylko Heroku mówi, że taka aplikacja nie istnieje, a jeśli przejdziesz do mojej domeny www, to jest to moja aplikacja.

+8

Często zadawane pytania dotyczące Heroku mówią, jak wykonać przekierowanie za pomocą usługi DNSimple. Ich strona wsparcia łączy się z StackOverflow. –

+29

Myślę, że odpowiedź Emila jest nieco trudna, ta strona jest źródłem rozwiązań problemów, które mamy na drodze programowania i jest to problem, który mam właśnie teraz! : D –

+0

To powinno być prawdopodobnie zamknięte jako Dupe zamiast Off-Topic: http://stackoverflow.com/questions/16022324/how-to-setup-dns-for-an-apex-domain-no-www-pointing- to-a-heroku-app –

Odpowiedz

211

W usłudze GoDaddy użyj funkcji "Przekazywanie", aby skonfigurować przekazywanie z yourdomain.com na www.yourdomain.com. Funkcja przekierowania mogą być dostępne w domenie Menedżer u dołu sekcji „informacje o domenie”:

Domain forwarding in GoDaddy

Jeśli zrobisz to wtedy cały ruch do yourdomain.com będą kierowane do Heroku app CNAME (który jest better approach).

Jedna uwaga, ale jeśli jesteś na Cedar stack, nie używaj proxy.heroku.com dla gospodarza twojego CNN www. Zamiast tego użyj your-app-name.herokuapp.com. Te szczegóły to covered here.

GoDaddy także specifies że aby nazwa domeny do przodu, jego rekord Musi być skierowany do 64.202.189.170 lub może spaść między następujących zakresach: 50.63.202.1 - 50.63.202.31 lub 184.168.221.1 - 184.168.221.31 .

+0

Dziękujemy! : D Rozwiązałem dla mnie wiele problemów. – Automatico

+10

Czy to spowoduje ostrzeżenie/błąd, jeśli używasz SSL jako heroku? powiedzieli, że jeśli nastąpi przekierowanie https: // example.com, pojawi się ostrzeżenie. – Jaqx

+1

@jaqx, to się ze mną dzieje, czy znalazłeś sposób na uniknięcie tego ostrzeżenia przez użytkowników? – jackerman09

6

W Edytorze stref DNS GoDaddy, chcesz skonfigurować rekord CNAME www, aby wskazywał na @. W swoim rekordzie A użyjesz symbolu wieloznacznego (*) do wskazania adresu IP i drugiego rekordu A, który używa @ jako hosta, który również wskaże adres internetowy. W ten sposób

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 

enter image description here

Najczęściej zadawane pytania

Mogę wskazać * .mojadomena.com do mojego app Heroku?

Tak, korzystając z bezpłatnej funkcji niestandardowych domen w Heroku, można wskazać domenę wieloznaczną do swojej aplikacji.

Jakie adresy IP należy używać podkreślić moją własną domenę do Heroku?

Routing stos Heroku wykorzystuje zbiór adresów IP, które mogą zmianie w dowolnym czasie i za pomocą zapisów do punktu do aplikacji nie jest obsługiwany. Aby zapewnić domena zawsze wskazuje poprawnie do siatki routingu, konfiguracji subdomen (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 

Naked (lub nagim/wierzchołkowe) terenów (np. example.org) należy unikać ze względu na ich dostępność i konsekwencje uptime.

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

W niektórych przypadkach, próbuje dodać własną domenę (np subdomain.mydomain.com) do aplikacji może spowodować błąd jak poniżej:

! mydomain.com is owned by another user 

Wszystkie aplikacje dla danej domeny bazowej musi być własnością tej samej uwagę Heroku. Powyższy błąd oznacza, że ​​ktoś inny już dodał domenę niestandardową mydomain.com do jednej ze swoich aplikacji.

+1

Czy adres IP i adres internetowy Heroku to appname.heroku.com lub proxy.heroku.com? –

+1

Powinieneś naprawdę obejrzeć ten artykuł, https://devcenter.heroku.com/articles/custom-domains, ponieważ obejmuje on wszystko, co chcesz zrobić. – kobaltz

+1

To podejście wskazuje na CNAME 'www' to @, który nadal kieruje ruch do stałych adresów IP (który ma te same wady co rekordy A).Użyj przekierowania najwyższego poziomu, w GoDaddy nazywa się to "przekierowaniem". –

5

Jeśli masz konfigurację adresów IP w samej domeny i swojej www cname'd do yourappname.herokuapp.com to wszystko co musisz zrobić, to użyć czegoś podobnego RackRewrite w aplikacji do przekierowywania żądań po przybyciu Twoje zgłoszenie.

To, co chcesz skonfigurować, to każda prośba do gołej domeny, która zostanie przekierowana na twój adres www. Po wykonaniu instrukcji instalacji dodawać inicjatora w config/inicjalizatorów

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' 

co mówi, jeśli żądany adres URL nie jest www.yourdomain.com następnie 301 przekierować go do www.yuordomain.com ale tylko jeśli jest uruchomiony w produkcji.

+1

Najlepiej zrobić to na poziomie DNS, unikając podróży przez stałe adresy IP Heroku. Plus, nie wiesz, czy to jest aplikacja Ruby, czy nie? –

+0

Ryan, przekierowania nie można wykonać na poziomie DNS. Są zawsze wykonywane przez HTTP. –

+0

Ryan - został oznaczony jako Ruby :) –

3

W tym celu współpracować z Network Solutions, wykonaj następujące czynności:

Network Solutions wskazując fragment twojadomena.pl do www.yourdomain.com. Oto jak.

  1. ciągu Account Manager wybierz moja domena nazw

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

  3. w zielonym polu, wybierz Zmień gdzie domena Punkty

  4. Wybierz Adva nced DNS, a następnie kontynuować

  5. Najpierw edytować A Records wybierając edytować Records

    Dla "@ none" wprowadź następujący adres IP 205.178.189.129, wyczyścić rejestry dla " www”i "* (wszystkie pozostałe)", następnie wybierz Kontynuuj

  6. drugie, edytować aliasy hosta (rekordy CNAME) wybierając Edycja CNAME Records

    Enter „www” w kolumnie Alias ​​

    Leave TTL ustawiony na 7200, ale na tej samej linii, wprowadzić serwerów nazw udostępnionych przez serwis blogów w innych przyjmujących sekcja [IE FOLLOW INSTRUKCJE Heroku TERAZ www - -> yourapp.herokuapp.com (Cedar Stos)]

    wybierz Kontynuuj

teraz czekaj i sprawdź domenę (y) za pomocą następującego polecenia terminala:

host domain.com 
host www.domain.com 
20

Możesz również użyć http://wwwizer.com, aby przesłać dalej z swojej domeny do swojej strony www. W GoDaddy w menedżerze DNS pod rekordem A w nagłówku @ w 174.129.25.170. Będą automatycznie przekierowywać z domeny bez rejestracji na stronę z www. Przed tym.

+2

po co płacić kolejną opłatę komuś innemu? – Benjamin

+3

Ty, proszę pana, jesteś ratownikiem. @Vezu: przekazywanie non-ssl jest całkowicie bezpłatne. Wystarczy, że wskażesz swój rekord A nagiej domeny na ten adres IP, a przekieruje ona przeglądarkę do domeny www. Nie potrzebujesz nawet konta z nimi. –

+0

@ PO'Conbhui dziękuję za wyjaśnienie. – Benjamin

Powiązane problemy