2012-07-15 430 views
130

我想弄清楚如何讓我的網站的裸域重定向到www域。我使用Heroku並擁有GoDaddy的域名。因爲Heroku的,我的A記錄已經被設置爲:Heroku/GoDaddy:發送裸域到www

@:75.101.145.87

@:75.101.163.44

@:174.129.25.170

我的WWW CNAME指向proxy.heroku.com。

我一直在尋找所有的互聯網,但無法找到一個簡單的,免費的答案,我如何能做到這一點重定向。有些答案討論了使用付費服務,我不想這樣做,而其他人則討論瞭如何使用和修改Heroku設置,但是沒有給出太多解釋。現在,如果你去我的裸域,只是Heroku說沒有這樣的應用程序存在,而如果你去我的www域它是我的應用程序。

+8

Heroku FAQ只說如何用DNSimple進行重定向。他們的支持頁面鏈接到StackOverflow。 – 2012-07-15 14:14:01

+29

我認爲Emil對此的迴應有點苛刻,這個網站是解決我們在編程之旅中遇到的問題的資源,這是我現在正在面臨的一個問題! :D – 2013-07-05 14:14:33

+0

這應該可以關閉爲Dupe而不是Off主題:http://stackoverflow.com/questions/16022324/how-to-setup-dns-for-an-apex-domain-no-www-pointing- to-a-heroku-app – 2014-07-11 02:38:22

回答

211

在GoDaddy上,使用「轉發」功能將轉發從yourdomain.com設置爲www.yourdomain.com。轉發功能可以在域管理器在「域信息」部分的底部進行訪問:

Domain forwarding in GoDaddy

如果你這樣做,那麼所有流量yourdomain.com將被路由到Heroku的應用CNAME(這是better approach)。

但是,請注意,如果您使用的是Cedar stack,則請勿使用proxy.heroku.com作爲您的www CNAME的主機。請使用your-app-name.herokuapp.com。這些細節是covered here

GoDaddy也specifies爲了您的域名轉發,其A記錄必須指向64.202.189.170或必須介於以下範圍之間:50.63.202.1 - 50.63.202.31或184.168.221.1 - 184.168.221.31 。

+0

謝謝! :D爲我解決了很多問題。 – Automatico 2012-10-18 11:22:24

+10

如果您使用SSL作爲heroku聲明,是否會創建警告/錯誤?他們表示如果https:// example.com被重定向,則會有警告。 – Jaqx 2013-06-06 07:04:32

+1

@jaqx,這是發生在我身上,你找到一種方法來避免用戶得到這個警告? – jackerman09 2013-10-25 22:50:31

6

在GoDaddy的DNS區域編輯器中,您需要將CNAME記錄www配置爲指向@。在您的A Record中,您將使用通配符(*)指向IP地址,使用@作爲主機的第二個A Record也將指向該網址。這樣一來,

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

常見問題

我可以點* .mydomain.com來我的Heroku應用程序?

是的,使用Heroku的免費自定義域功能,您可以將通配域指向您的應用程序。

我應該使用哪些IP地址將我的自定義域指向Heroku?

Heroku的路由協議棧使用IP地址的集合,可以 隨時改變,以及A記錄指向到您的應用程序不支持 。爲了確保您的域名始終正確指向 路由網,配置子域名(例如www.example.org WWW)使用 CNAME記錄:

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

赤裸(或裸/頂點)域(例如example.org)應該避免 ,因爲它們的可用性和正常運行時間的後果。

爲什麼我不能爲我的應用程序添加subdomain.mydomain.com?

在某些情況下,嘗試添加自定義域(如 subdomain.mydomain。COM)爲應用程序可能會導致這樣的錯誤:

! mydomain.com is owned by another user 

對於給定的基本域的所有應用程序都必須由相同 Heroku的帳戶所有。上述錯誤意味着其他人已經 將mydomain.com自定義域名添加到他們的某個應用中。

+1

Heroku的IP地址和網址是appname.heroku.com還是proxy.heroku.com? – 2012-07-15 14:42:02

+1

您應該仔細閱讀本文,https://devcenter.heroku.com/articles/custom-domains,因爲它涵蓋了您要做的一切。 – kobaltz 2012-07-15 14:44:17

+1

這種方法將CNAME「www」指向@,它仍然將流量路由到固定IP地址(它與A記錄具有相同的缺點)。使用頂級重定向,在GoDaddy上,這被稱爲「轉發」,而不是。 – 2012-07-15 17:41:16

5

如果您對您的裸域和WWW cname'd到yourappname.herokuapp.com的IP地址設置,那麼所有你需要做的就是使用類似RackRewrite在你的應用程序時,他們在到達重定向請求你的申請。

你想要設置的是任何對裸域的請求被重定向到你的www地址。以下後的安裝說明在配置/初始化

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' 

這是說增加一個初始化,如果請求的URL是不是www.yourdomain.com那麼301重定向到www.yuordomain.com,但只有當它的運行在生產中。

+1

理想情況下,這是在DNS級別完成的,避免通過Heroku的固定IP地址旅行。另外,不知道這是不是一個Ruby應用程序? – 2012-07-15 17:48:33

+0

瑞恩,重定向無法在DNS級別完成。它們總是通過HTTP完成的。 – 2012-07-16 07:25:09

+0

Ryan - 它被標記爲Ruby :) – 2012-07-16 08:24:34

3

對於這個與網絡解決方案合作執行以下操作:指向yourdomain.com到www.yourdomain.com

網絡解決方案。 以下是操作方法。

  1. 客戶經理,選擇我的域名

  2. 選擇您要管理

  3. 在綠色框中鍵入域名,選擇更改其中domain點

  4. 選擇Adva NCED DNS,然後繼續

  5. 首先,通過選擇編輯A記錄

    對於 「@無」 進入下面的IP地址205.178.189.129編輯的A記錄,清除記錄爲「 WWW」和 「*(所有其他)」, 然後選擇繼續

  6. 其次,選擇編輯CNAME記錄編輯主機別名(CNAME記錄)

    在別名列

    離開TTL設定爲7200輸入「www」的,但在同一行,輸入由博客服務在其他主機部分 [IE 按照Heroku的說明NOW萬維網提供的名稱服務器 - - > yourapp.herokuapp.com(雪松堆棧)]

    選擇繼續

現在等待,並與下面的終端命令來檢查域:

host domain.com 
host www.domain.com 
20

您也可以使用http://wwwizer.com從您的裸域轉發到您的www。在GoDaddy中,位於174.129.25.170中@標題類型的A記錄下的DNS管理器中。他們會自動將裸域重定向到www。在它前面。

+2

爲什麼要向別人支付另一筆費用? – Benjamin 2013-03-25 08:55:15

+3

你,先生,是救生員。 @Vezu:非ssl轉發是完全免費的。您只需將您的A域記錄指向該IP地址,並將瀏覽器重定向到www域。你甚至不需要他們的帳戶。 – 2013-05-04 00:48:53

+0

@ PO'Conbhui謝謝你澄清。 – Benjamin 2013-05-04 17:35:06