話說上回為了解決WordPress與Woocommerce無法以Mailgun做為寄件主機的問題,也順便檢查了Cloudflare的DNS設定,居然得到了意想不到的收獲,可說是「塞翁失馬,焉知非福」。

參考: 設定Mailgun為WordPress與Woocommerce的發信主機

假設我買了abc.com這個domain name,並以www.abc.com建置了網站讓訪客使用,若DNS只設定了根目錄的www.abc.com,那麼abc.com與www.abc.com就會被視為兩個不同的網站,當訪客忘了輸入前面的www,便會出現找不到網站的錯誤訊息。之前Elena的網站就有這個困擾,訪客必須完整輸入www開頭的網址才能順利連線。

問題:當訪客忘記輸入www時,譬如當訪客輸入abc.com,希望也能讓它自動指向www.abc.com,DNS該如何設定才好呢?

這個問題每隔一段時間就會有人在各大論壇中提問,也算是常見的月經題了,解決方法倒是沒想像中的複雜難懂,如果Elena能解決,相信大部分的人也都能解決。由於我的domain DNS都是交由Cloudflare代管,在此也以Cloudflare的DNS設定為例,相信其他DNS服務的設定也都是大同小異的。

首先,在DNS設定中新增一個CNAME值的name為www,value設為abc.com,意思就是”將www.abc.com視為abc.com的分身”。再新增一個A值的name為abc.com,value設為該網站的伺服器IP address,這樣一來當訪客連到abc.com,就能指向其對應的伺服器IP了。

Cloudflare的DNS設定畫面

另外也能用新增Page Rules的方式,將abc.com以301轉址導向www.abc.com,這兩種方式選擇其一即可,我自己是偏好以CNAME值來設定分身,感覺這樣比較能一勞永逸,而且本尊(如abc.com)與分身(如www.abc.com)還能一起共享Cloudflare提供的免費SSL金鑰服務喔!