如何在 Cloudflare 設定免費轉址功能?301、302 跳轉實作教學

Cloudflare free url forwarding setup 9.

近期 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,節省重新設定的時間。

如果紀錄太多也能直接上傳檔案匯入相關紀錄。

Cloudflare free url forwarding setup 1.

STEP 2

接著 Cloudflare 會讓使用者選擇要使用的方案,選擇最下方「Free」後按繼續到下一步。

Cloudflare free url forwarding setup 2.jpg.

STEP 3

重點來了!如果你想要把某個網域名稱做為純粹轉址使用,它本身並沒有任何的原始伺服器,可能很多人就會卡在這個步驟,我查了資料後發現 Cloudflare 有提供這麼一篇「Redirect one domain to another」說明文件,可將 DNS 紀錄指向 192.0.2.1,同時將 Proxy status 打開(後面橘色的雲)就能實現,所以只要新增以下兩組紀錄即可:

TypeNameContentProxy statusTTL
A@192.0.2.1Proxied(橘色)Auto
Awww192.0.2.1Proxied(橘色)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 address 192.0.2.0 in your Cloudflare DNS to create a proxied DNS record that can use Cloudflare Redirect RulesPage Rules, or Cloudflare Workers. (參考資料來源

Cloudflare free url forwarding setup 3.jpg.

STEP 4

最後將 DNS 紀錄更新為 Cloudflare 提供的紀錄即可,若你是從 Cloudflare 註冊或轉入域名的話就不用做這個步驟。

Cloudflare free url forwarding setup 4.

STEP 5

接下來從 Cloudflare 進入要設定轉址的域名,在「SSL / TLS」選擇「Overview」,接著將模式設定為「Flexible」,這個步驟可讓瀏覽器到 Cloudflare 間進行加密傳輸並讓 HTTPS 可用。

Cloudflare free url forwarding setup 6.jpg.

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」進行設定。

Cloudflare free url forwarding setup 7.jpg.

STEP 7

實際測試一下網址跳轉效果(這裡我推薦 httpstatus.io),確實會看到 301 重新導向已經將網址轉址到目標頁面。

Cloudflare free url forwarding setup 8.

值得一試的三個理由:

  1. 使用 Cloudflare 免費方案即可實現,無需額外付費
  2. 支援 SSL 加密,確保 HTTP / HTTPS 都能正常轉址
  3. 無需架設伺服器,只要設定 DNS 和頁面規則即可完成
Pseric

Pseric

學生時代成立網站以來堅持每日更新,在挖掘資料的過程中慢慢找出自己經營網站的方法,最開心的是有一群一起長大的讀者。

文章: 6512