2019/01/13

超強的 Cloudflare,Page Rules 篇

很久以前,我的網域都是註冊、代管在 no-ip.com,自從發現 Cloudflare(以下簡稱 CF)有免費的超強代管之後,即使原本代管期間還沒到期,二話不說,馬上移到 CF 去,用了一年,陸續摸索出一些必要的設定,跟大家分享一下。CF 免費提供3個Page Rules 設定,對於一般小型網站架構,應該很夠用了。

我的網域是 sushiboy.com,網站自然習慣設定 www 開頭,但是 DNS 設定通常大家都會設定 sushiboy.com、www.sushiboy.com 都指向同一 IP,這時候,如果你有設定 Google Analytics 或是廣告服務時,這些分析資料就會跑出兩個網址、兩種結果,在分析報表上,它是分開計算的,對 SEO 排名也會有影響。Google Analytics 有提供一種篩選器的解決方案,可以把報表裡的 www. 移除,並把資料合併到 sushiboy.com 計算,但這並非治本的方法,所以利用 CF 的 Page Rules,我們可以在一開始的源頭,就強迫把 www. 拿掉。
Page Rules
規則1,把 www.sushiboy.com 用 HTTP 301 永久指向 sushiboy.com。
Rule1

詳細設定如下:
  • *www.sushiboy.com/* 的意思是無論開頭是 http:// 或 https://
  • 則執行動作 http 301 永久轉址
  • https://sushiboy.com/$2 是上述的兩個 * 用 $1、$2接收,因為我要指向 https,所以不管 $1 裡面是 http 還是 https,都忽略,直接套用 https。
至於為什麼是 www 指向 sushiboy.com,而不是反過來?如果你只有一個網站,當然可以倒過來設定把 *sushiboy.com/* 指向 www.sushiboy.com,如果你還有其他網站,指向其他IP,那就不能這樣設定。換言之,我是把 sushiboy.com 預設指向我眾多網站中的 www。

要特別注意的是,Page Rules 的設定有由上到下優先順序,而且只會執行一條規則,如果條件符合規則1,就會馬上執行,規則2以後都會忽略,所以最重要的設定務必放最上面。

我的規則2非常簡單,因為我的其他網站也都有 SSL,所以只是強迫其他非 www. 開頭的網站都要用 https 連線而已。
Rule 2

沒有留言: