當我們的網路流量進入 Cloudflare 後,我們可以修改裡面任何內容,再將網路流量反向代理到原始伺服器,本篇就來說說如何透過 Cloudflare Rules 來修改。

Cloudflare Rules 是 Cloudflare 的一項功能,它可以讓使用者根據不同的條件和規則,進行網路流量的自定義控制和管理。這些條件和規則可以基於各種不同的因素,例如瀏覽器的 User Agent、IP 地址、國家或地區等等。
Cloudflare Rules 可以根據不同的需求來進行設置,如阻止惡意流量、限制機器人訪問、防止 DDoS 攻擊、限制特定國家或地區的訪問、重新導向流量等等。更多Cloudflare Rules介紹可以參考官方文件。
網頁規則
網頁規則可讓您控制指定的 URL 會觸發哪些 Cloudflare 設定。每個 URL 只會觸發一個網頁規則,並支援正規表達式。

不同付費方案能用的規則數也不同,官方文件中提到免費版就只能有三筆。

如下範例,我建立一個網頁跳轉的規則,當有人造訪 a.twcanhelp.me 時,會自動302 跳轉到 Google。其他更多挑選設定可以再研究一下。

Configuration Rules
接著講到 Configuration Rules,與上面網頁規則差異在於,網頁規則針對特定網址進行設定,Configuration Rules 可以設定在多個網域上,能調整的設定也不太一樣,可以參考官方文件。

轉換規則
轉換規則用來在邊緣調整要求和回應的 URI 路徑、查詢字串和 HTTP 標頭。意思是說可修改使用者進來的封包內容,再傳到後端伺服器。更多說明參考官方文件。
主要有以下功能:改寫URL、修改要求標頭、修改回應標頭、受控轉換。試過會知道也不是什麼 header 都可以修改,有些較機敏的會被禁止修改。

受控轉換可以新增或移除一些 Cloudflare 提供的標頭。

重新導向轉接規則
重新導向轉接規則可以設定多筆來源的 301、302 跳轉,網頁規則也有一樣的功能,較複雜的跳轉可以在這邊進行設定。

Origin Rules
Origin Rules 可以修改目標的 port 不是到預設的 443port。

結語
傳統上我們會在 NGINX、Apache、Caddy 上建立各種規則,在 Cloudflare 也能做到一樣的事情,如果要做到更複雜的邏輯,後續會介紹使用 Worker 來達成。
▶ 閱讀更多本系列文:30 天入門 Cloudflare