如何在 Cloudflare 設定免費轉址功能?301、302 跳轉實作教學
近期 WordPress 和 WP Engine 鬧得不可開交,對社群造成不小傷害,我也決定慢慢減少使用 Automattic 相關服務,第一步就是把 WordPress.com 註冊的網域名稱轉到其他註冊商。目前最推薦的還是 Cloudflare Registrar,幾乎以成本價提供域名註冊服務,還能直接整合自家的 CDN、SSL 和安全防護等功能,比較可惜的是暫時還不支援國家和地區頂級域名(ccTLD)。另外,在 Gandi.net 大幅調漲價格後可能有不少人會出走,Cloudflare 就是個好選擇(只是 .com.tw
或 .tw
就要再找其他註冊商了…)。
話說回來我剛好遇到一個情境,原有的域名註冊商有「網站轉址」(URL Forwarding)功能,域名轉出後就沒有這功能可以使用,有時候手邊的網域名稱純粹只是想拿來做為轉址,或是網站曾經更換過網域名稱,舊網址 301 重新導向新的網站(例如原有的 www.freegroup.org 重新導向至 free.com.tw ),這個功能就很有用。
如果你的域名註冊商沒有這項功能,我在國外網站找到一個解決方案,透過 Cloudflare 實現網站 301、302 轉址,更重要的是即使網頁沒有主機也可用。
照著以下教學設定會有這些優點:
- 將 DNS 紀錄指向
192.0.2.1
,這是保留 IP 位址,沒有原始伺服器也可用。 - 利用 Cloudflare SSL 功能讓 HTTP、HTTPS 兩種版本的網址都能轉址。
- 最重要的是免費方案即可使用,不用額外付費。
那麼就開始吧!
網站名稱:Cloudflare
網站鏈結:https://www.cloudflare.com/zh-tw/
使用教學
STEP 1
首先到 Cloudflare 將你的網域名稱加入(如果還沒有的話),在新增時會有一個快速掃描已有 DNS 紀錄的選項,可把現在有的 DNS 紀錄直接匯入 Cloudflare,節省重新設定的時間。
如果紀錄太多也能直接上傳檔案匯入相關紀錄。
STEP 2
接著 Cloudflare 會讓使用者選擇要使用的方案,選擇最下方「Free」後按繼續到下一步。
STEP 3
重點來了!如果你想要把某個網域名稱做為純粹轉址使用,它本身並沒有任何的原始伺服器,可能很多人就會卡在這個步驟,我查了資料後發現 Cloudflare 有提供這麼一篇「Redirect one domain to another」說明文件,可將 DNS 紀錄指向 192.0.2.1
,同時將 Proxy status 打開(後面橘色的雲)就能實現,所以只要新增以下兩組紀錄即可:
Type | Name | Content | Proxy status | TTL |
---|---|---|---|---|
A | @ | 192.0.2.1 | Proxied(橘色) | Auto |
A | www | 192.0.2.1 | Proxied(橘色) | Auto |
192.0.2.1
是保留 IP 位址,但在 Cloudflare 可以被使用,如果是 IPv6 就使用 100::
(雖然 Cloudflare 說明文件用的是 192.0.2.0,但它和 192.0.2.1 是相同的位址網段,都是使用於測試而被保留)。
What IP should I use for parked domain / redirect-only / originless setup?
In the case a placeholder address is needed for “originless” setups, use the IPv6 reserved address
100::
or the IPv4 reserved address192.0.2.0
in your Cloudflare DNS to create a proxied DNS record that can use Cloudflare Redirect Rules, Page Rules, or Cloudflare Workers. (參考資料來源)
STEP 4
最後將 DNS 紀錄更新為 Cloudflare 提供的紀錄即可,若你是從 Cloudflare 註冊或轉入域名的話就不用做這個步驟。
STEP 5
接下來從 Cloudflare 進入要設定轉址的域名,在「SSL / TLS」選擇「Overview」,接著將模式設定為「Flexible」,這個步驟可讓瀏覽器到 Cloudflare 間進行加密傳輸並讓 HTTPS 可用。
STEP 6
最後從「Rules」找到「Page Rules」頁面規則,依照以下方式建立新規則:
- URL(來源網址):
*yourdomain.com/*
- 選擇「Forwarding URL」和「301 – Permanent Redirect」。
- Enter destination URL(目標網址):
https://yournewdomain.com/$2
最後儲存並且部署網頁規則就大功告成了!
另外再提一下,Cloudflare 官方文件會建議使用「Redirect Rules」或是內建的模板(Templates)功能實作,我個人覺得這個方式並不是很容易操作,因此我還是比較偏好使用原有的「Page Rules」進行設定。
STEP 7
實際測試一下網址跳轉效果(這裡我推薦 httpstatus.io),確實會看到 301 重新導向已經將網址轉址到目標頁面。
值得一試的三個理由:
- 使用 Cloudflare 免費方案即可實現,無需額外付費
- 支援 SSL 加密,確保 HTTP / HTTPS 都能正常轉址
- 無需架設伺服器,只要設定 DNS 和頁面規則即可完成