Godaddy DNS設定 轉向Heroku

Hazel Wu
5 min readOct 2, 2017

--

前言:這是一個很簡單的動作,但疑最近鬼打牆(?),硬是查資料弄了快三個小時(暈),以防萬一自己的金魚腦袋又忘記,於是記錄下來。

2018/01/10更新錯誤:沒有前綴詞的domain.com要轉向heroku正確網站,無法用網域商GoDaddy設定轉址,需在CloudFlare設定DNS 。

環境:用Rails架設在Heroku免費空間上。

但是原始的網址醜醜的,又臭又長。

於是在GODADDY註冊一個網域,進入DNS網域管理。

在Record紀錄新增CNAME,主機輸入www,指向你的heroku的網址

若不知道heroku專案的名字,可以在iTerm輸入heroku open或直接去heroku網站登陸,右上角有一個open app,就會出現你專案的網址了。

對,其實就是這麼簡單,但我卡關在不管怎麼設定www、Heroku的網址都被駁回,出現ERROR:發生錯誤。真的活見鬼啦!!一直無法儲存的窘境

經過不懈努力的Google後,其實沒有得到什麼答案,一切搜尋的心得都指向我設定的是對的。

後來眼尖發現:Godaddy 網域DNS管理頁面上,(咬牙切齒地說)它非常貼心先設定好了其中一個選項CNAME,www,指向@

把那一欄預設刪除後,就能將heroku的設定值儲存了。

可喜可賀的大結局!(歡呼!!)

除了在Godaddy設定之外,還要另外進入Heroku你專案的頁面設定Domain

點選Add domain後輸入你買下來的網址,就可以啦!

記得在heroku上加上自己的網址前面還要加上www才會有作用哦。

Heroku 的 DNS Target則是可以做客製化 domain

以上張圖為例,在Cloudflare 的 DNS設定,選取CNAME: www.quan-bao.tw,Value值則填 www.quan-bao.tw.herokudns.com ( Heroku 產生的DNS Target)

為了避免使用者輸入你註冊的網址卻沒加上前綴詞www,卻連不上網站的窘境,需要在Cloudflare DNS上再做設定。

多增加一個CNAME:quan-bao.com.tw (填寫妳註冊的網域名稱但不加上前綴詞),Value則填寫你的Heroku專案網站

若不清楚專案網址怎麼辦?

  1. 直接開啟Terminal輸入 heroku open(前提是有安裝Heroku CLI工具)
  2. 從Heroku 選取你個人專案>Setting可以找到。

3. 用推算方式:Heroku若設定的專案名稱為myapp,那麼Heroku專案網站則是myapp.herokuapp.com。

想要設定不管User有沒有加www前綴詞的話,都想要跑出的網址是:quan-bao.com.tw時,該怎麼設定?

即使User輸入 www.quan-bao.com 都會自動轉向成 quan-bao.com.tw

1.畫面轉到 CloudFlare 的 PageRules,並 Create Rules

If the URL matches 這欄填上有前綴詞www的網址

www.quan-bao.com.tw/*

2. Add a Setting 增加設定,並選擇 Forwarding URL 轉址,並選 301- Permanent Redirect 永久轉址

3. Destination URL 填寫 http://quan-bao.com.tw/$1。($1一定會是結尾字串,一定要加上)

4. Save and Deploy. 儲存並佈署

建立規則後應會像這樣呈現。

5. 測試,試試看打www.quan-bao.com.tw是否會自動轉址成quan-bao.com.tw

若想要使用Heroku SSL功能的話,就必須要先升級到最低的付費帳戶(2017/10月撰寫時,Heroku價格為七塊美元/月)

若使用Cloudflare服務,就不用額外花這筆錢囉,便能自動加上SSL。

--

--

Hazel Wu

堅信著所有的學習都是為了讓你在對的時間點作出對的選擇。