Cloudflareのwww→非wwwリダイレクトルールが効かなかったので原因を調べてみました
www.wp-kyoto.net へのアクセスを wp-kyoto.net(www無し)へ301リダイレクトする設定を、CloudflareのRedirect Rulesで作りました。ルール自体はシンプルなのですが、保存 […]
目次
www.wp-kyoto.net へのアクセスを wp-kyoto.net(www無し)へ301リダイレクトする設定を、CloudflareのRedirect Rulesで作りました。ルール自体はシンプルなのですが、保存時に「このルールはあなたのトラフィックには適用されない可能性があります」という警告が出て、原因を調べることになったので記録しておきます。
Redirect Rulesでwww→apexのリダイレクトルールを作る
Cloudflareダッシュボードの「ルール」から、リダイレクトルールを作成します。用意されているテンプレートの中に、wwwから非wwwへのトラフィック転送を前提にした「新しいシングルリダイレクトを作成する」があったので、これを使いました。

ルール名を www.wp-kyoto.net とし、リクエストURLに https://www.wp-kyoto.net/* を、ステータスコードには301 Permanent Redirectを指定します。

テンプレートのままだとターゲットURLが https://${1} で、ドメイン部分が空になってしまうため、https://wp-kyoto.net/${1} に書き換えました。このとき、POSTリクエストをリダイレクトする場合は307/308を使うようにという注意書きも表示されましたが、今回はGETのアクセスを想定しているので301のままにしています。

保存時に出た警告
設定を保存しようとしたところ、次の警告ダイアログが表示されました。

「このルールはあなたのトラフィックには適用されない可能性があります」というタイトルで、DNS構成によりwww.wp-kyoto.netのトラフィックがプロキシされていない可能性があり、リクエストがこのルールに一致しない可能性がある、という内容です。選択肢は「とにかくルールを無視して展開する」と「新しいプロキシDNSレコードを作成します」の2つでした。ひとまず「とにかくルールを無視して展開する」を選んでルールは展開しましたが、警告が出ている以上、原因は確認しておくことにしました。
原因: wwwがCloudflare Workersのカスタムドメインに登録されていなかった
wp-kyoto.netはCloudflare Workers(wpkyotoという名前のWorker)で配信しており、Workers & Pagesの「ドメイン」タブでカスタムドメインとルーティングを管理しています。このタブを確認すると、登録されていたのはwp-kyoto.net(本番環境)だけで、www.wp-kyoto.netは登録されていませんでした。

CloudflareのRedirect Rulesは、対象のホスト名がCloudflareでプロキシされている状態でなければ機能しません。wp-kyoto.netのDNSはWorkersのカスタムドメイン機能を経由して管理されているため、www側にプロキシ済みのDNSレコードが存在せず、www.wp-kyoto.net宛てのリクエストがそもそもルールエンジンを通っていなかったようです。先ほどの警告は、この状態を正しく検出して表示されていたことになります。
Workersのカスタムドメインにwwwを追加する
「ドメインを追加」から、wp-kyoto.net に接続する設定でサブドメイン欄に www を入力します。

ドメインを追加すると、DNS管理画面で wp-kyoto.net と www.wp-kyoto.net の両方が「プロキシ済み」の状態で登録されました。

リダイレクトルールが機能するか確認する
この状態で改めてルール一覧を確認すると、リダイレクトルールが1個アクティブとして登録されています。


最後にwgetコマンドで実際の挙動を確認しました。
wget -S --spider https://www.wp-kyoto.net
スパイダーモードが有効です。リモートファイルが存在してるか確認します。
--2026-07-07 22:46:26-- https://www.wp-kyoto.net/
www.wp-kyoto.net (www.wp-kyoto.net) をDNSに問いあわせています... 172.67.153.104, 104.21.82.46
www.wp-kyoto.net (www.wp-kyoto.net)|172.67.153.104|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 301 Moved Permanently
Date: Tue, 07 Jul 2026 13:46:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Location: https://wp-kyoto.net/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=AtWff1FKb61MO2KwTjaPlfiSUV%2BSV4zPYzuUm65umOfqks%2F%2ByP2WkHYXviK8QdY4GdjR6wpUyY4HuDC2784IFsIJsMrWvphdyNrzDvX1%2FpNqUh6sKz1PCKUULWiEJ%2Bb%2BGpnx"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: a1774b9d280019ed-KIX
場所: https://wp-kyoto.net/ [続く]
スパイダーモードが有効です。リモートファイルが存在してるか確認します。
--2026-07-07 22:46:26-- https://wp-kyoto.net/
wp-kyoto.net (wp-kyoto.net) をDNSに問いあわせています... 104.21.82.46, 172.67.153.104
wp-kyoto.net (wp-kyoto.net)|104.21.82.46|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 200 OK
Date: Tue, 07 Jul 2026 13:46:26 GMT
Content-Type: text/html
Connection: keep-alive
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Qq7p0CYpSxhYkcAydYJhnlaUnfH%2BxakyPOMUDRV6NrNu7HVJV%2FlrFwcMRPeNoIRms142fXqkArI%2FYCzW4D1z2dHpztctZzQoF1GoZcThtMigQ4Sm7mgvMugHpPn64bs%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: a1774b9db9f0d3ce-KIX
alt-svc: h3=":443"; ma=86400
長さ: 特定できません [text/html]
リモートファイルが存在し、さらなるリンクもあり得ますが、再帰が禁止されています -- 取得しません。
www.wp-kyoto.net へのリクエストが301 Moved Permanentlyで返り、LocationヘッダーがLocation: https://wp-kyoto.net/ になっていること、そのリダイレクト先へのリクエストが200 OKで返ってきていることが確認できました。
まとめ
Cloudflare WorkersのカスタムドメインでZoneを運用している場合、Redirect Rulesを追加しただけではルールが対象のホスト名に適用されないことがある、というのが今回の記録です。ルール作成時に出る警告文はそのまま原因を言い当てていたので、警告が出た場合はDNS側(あるいはWorkersのドメイン設定側)に対象ホスト名のプロキシ済みレコードがあるかを、まず確認したほうがよさそうです。