Cloudflare Tunnel での https リダイレクト設定

ここ最近はサイトを立ち上げるときに Cloudflare Tunnel を使うことが多い。Let's Encrypt などを使わなくても https 接続を簡単にできるからだ。

しかし Cloudflare Tunnel は https 接続を実現できるものの、同時に http 接続も保持されているということに気付いた。

強制的に https 接続にしたいなら、通常は .htaccess を編集してでリダイレクト設定にする。しかし、Cloudflare Tunnel ではその方法は使えなかった。

Cloudflare Tunnel での https リダイレクト設定は以下のように Cloudflare のアカウントページで設定する。

(1)ブラウザで Cloudflare のダッシュドードにアクセスする。

(2)「Websites」で対象ドメインをクリック。

(3)「Rules>Pages Rules」をクリック。

(4)「Create Page Rule」をクリックし、以下のように設定する(ドメインが example.com の場合)。

URL:example.com/*
Then the settings are: Always Use HTTPS

「Save and Deploy Page Rule」をクリックすると反映される。

実際にサイトに http でアクセスすると https に強制リダイレクトされるはずだ。

さて、僕は Google Adsense を使う関係で、ルートディレクトリに置いている ads.txt は https だけでなく http でもアクセスできる状態にしておく必要がある。

この場合さらに「Create Page Rule」をクリックし、以下のように設定する。

URL:example.com/ads.txt
Then the settings are: Automatic HTTPS Rewrites(トグルはオフにする)

「Save and Deploy Page Rule」をクリック。

Page Rules が複数ある場合、上から順番に適用され、一度適用されたものはそれで設定が確定するようになっている。だから、Page Rules 一覧で左の矢印をクリックして ads.txt の設定を Always Use HTTPS よりも上に配置する。

これで通常のページは http が https に強制リダイレクトされるが、ads.txt だけは http および https の両方で接続できる状態になった。

参考:
Is it possible to exclude URLs from a redirect rule? - Website, Application, Performance / DNS & Network - Cloudflare Community
https://community.cloudflare.com/t/is-it-possible-to-exclude-urls-from-a-redirect-rule/331485/3


この記事が気に入ったらサポートをしてみませんか?