Cloudflareで国ごとにリダイレクト&ブロックする
自分用メモ書きです。
Cloudflareでのアカウント作成後からの説明です。
日本での利用serverはさくらインターネットですが手順としてはエックスサーバーなども同じだと思います。
Cloudflareでの前準備

運営しているサイトのドメインを入力して「continue」ボタンを押す

必ずftpとmailは除外すること!!オンにしてるとメールが届かなくなるかも
DNS > Recordsでチェック


サーバー会社(さくらインターネットやエックスサーバーなど)のDNS設定で必要なネームサーバーが表示されるのでメモする
・「追加」があとからサーバー会社側で追加するDNS
・「削除」がサーバー会社側で削除するDNS(さくらインターネットの場合は ns1.dns.ne.jp と ns2.dns.ne.jp)

さくらインターネット
さくらインターネット 会員認証にログインする ※コンパネじゃないぞ





//追加
delilah.ns.cloudflare.com
tom.ns.cloudflare.com
ネームサーバーを編集後↓↓↓

再びCloud Flareで設定
「I updated my nameservers」のボタンを押す。

しばし待つ…この時は10分くらいかかった。
DNSが切り替わるっていない状態の画面↓↓↓

切り替わった画面↓↓↓ ※メニューの一番上Overview

これで準備完了!
国別リダイレクト設定する
Cloud Flareの管理画面で Rules > Overview を選択

二回目以降は以下の画面

リダイレクトさせる国を選択
リダイレクトルールを作成する。複数国を設定する場合は「or」で追加していく

日本以外で設定する場合
主要な検索エンジンは検索順位が落ちないように除外する。
”cf.client.bot”は残念ながら無料版だと使えないので1つずつ検索エンジンを設定していく方式にする。
(ip.src.country ne "JP")
and not (
lower(http.user_agent) contains "googlebot" or
lower(http.user_agent) contains "bingbot" or
lower(http.user_agent) contains "slurp"
)
上記はGoogle、Bing、Yahoo(=slurp)からのアクセスは除外して検索エンジンの順番は落とさないようにする設定。
注意点
特定の国をブロックしている場合、上記の日本以外の設定だと先にリダイレクトが入ってブロックされない可能性もある。なのでリダイレクト設定ではその国を除外しておく
(ip.src.country ne "JP")
and (ip.src.country ne "CN")
and not (
lower(http.user_agent) contains "googlebot" or
lower(http.user_agent) contains "bingbot" or
lower(http.user_agent) contains "slurp"
)
上記は日本以外かつ中国以外。
ブロック


新規のドメイン追加

海外からどう見えてるかチェック
シンガポール、ブラジル、バージニア、カリフォルニア、アイルランド、オーストラリアからの表示をチェック
中国からの表示をチェック
これはCloud Flareのチェックはできてないかも↓↓↓
https://www.vpnmentor.com/tools/test-the-great-china-firewall/
