このチュートリアルでは、Origin Rule と DNS レコードを設定し、カスタムドメインを設定した R2 バケットを指す方法を説明します。
手順では、次の例の値を使います。
| サイト訪問者がアクセスする URL | mycustomerexample.com/images/* |
| R2 バケットのカスタムドメイン | imagesbucket.example.com |
R2 バケットのカスタムドメインを設定するときは、本番で使う予定のないカスタムドメインを使います(この例では imagesbucket.example.com)。
-
Cloudflare ダッシュボードで、R2 object storage ページを開きます。
Overview を開く ↗ -
バケットを選択します。
-
バケットのページで Settings を選択します。
-
Public access > Custom Domains で Connect Domain を選択します。
-
接続するドメイン名を入力します。この例では
imagesbucket.example.comです。Continue を選択します。 -
DNS テーブルに追加される新しいレコードを確認し、Connect Domain を選択します。
ドメインが接続されました。ステータスが Initializing から Active に変わるまで数分かかります。最新の状態を確認するには、ページを再読み込みしてください。ステータスが変わらない場合は、バケットの横の ... を選択し、Retry connection を選択します。
追加された DNS レコードを確認するには、接続済みドメインの横の ... を選択し、Manage DNS を選択します。
mycustomerexample.com ゾーンで、次の設定の Origin Rule を作成します。
If incoming requests match
| Field | Operator | Value |
|---|---|---|
| URI Path | wildcard | /images/* |
Expression Editor を使う場合は、次の式を入力します。
(http.request.uri.path wildcard "/images/*")Set origin parameters
- Host header > Rewrite to の値:
imagesbucket.example.com - DNS record > Override to の値:
imagesbucket.example.com
この例では、サイト訪問者がアクセスする URL は /images で始まります。ただし、例の R2 バケットに保存されている画像には、この先頭の URL セグメントがありません。
URL 書き換えを使い、URL パスから /images セグメントを削除します。Cloudflare はダッシュボードに Rewrite Path for Object Storage Bucket というルールテンプレートを用意しています。必要な書き換えの設定に使えます。
-
Cloudflare ダッシュボードで、Rules の Overview ページを開きます。
Overview を開く ↗ -
Create rule > URL Rewrite Rule を選択します。
-
Rule name に、わかりやすいルール名を入力します。
-
If incoming requests match で Wildcard pattern を選択します。
-
Request URL に次の値を入力します。
https://<YOUR_HOSTNAME>/images/*この例では、値は
https://mycustomerexample.com/images/*です。 -
Then rewrite the path and/or query の Path に、次の値を入力します。
Target path Rewrite to [ /]images/*[ /]${1} -
Deploy を選択します。