Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

モバイルリダイレクトを行う

モバイル端末の訪問者を別のホスト名へ送るリダイレクトルールを作成します。

最終更新 Markdown で表示Agent セットアップ

次の例では、リクエストのユーザーエージェント文字列に基づき、モバイル端末の訪問者を別のホスト名へリダイレクトします。

元の URI パスを保持せずにモバイルユーザーをリダイレクトする

この静的リダイレクトの例は、現在のゾーン(example.com)へのモバイルユーザーからのリクエストを m.example.com へ送ります。元の HTTP リクエストの URI パスは保持しません。

When incoming requests match

  • Expression Editor に次の式を入力します。
    not http.host in {"m.example.com"} and (http.user_agent contains "mobi" or http.user_agent contains "Mobi")

Then

  • Type: Static
  • URL: m.example.com
  • Status code: 301

この例についての注意:

  • not http.host in {"m.example.com"} の条件は、リダイレクトループを防ぎます。
  • ユーザーエージェントの条件は、モバイル端末の識別に関する Mozilla の推奨 に沿っています。
  • Then > URL の値は、ルールのフィルター式の http.host 条件に入れた値と同じにします。
  • Cloudflare 上の他ゾーンへも、Cloudflare 上にない他のホスト名へもリダイレクトできます。

元のパスを保ってモバイルユーザーをリダイレクトする

この単一リダイレクトの例は、現在のゾーン(example.com)へのモバイルユーザーからのリクエストを m.example.com へ送ります。元の HTTP リクエストの URI パスは保持します。

When incoming requests match

  • Expression Editor に次の式を入力します。
    not http.host in {"m.example.com"} and (http.user_agent contains "mobi" or http.user_agent contains "Mobi")

Then

  • Type: Dynamic
  • Expression: concat("https://m.example.com", http.request.uri.path)
  • Status code: 301

この例についての注意:

  • not http.host in {"m.example.com"} の条件は、リダイレクトループを防ぎます。
  • ユーザーエージェントの条件は、モバイル端末の識別に関する Mozilla の推奨 に沿っています。
  • Then > Expression のホスト名は、ルールのフィルター式の http.host 条件に入れた値と同じにします。
  • 用途によっては、元のリクエストのクエリ文字列も保つために Then > Preserve query string を有効にします。
  • Cloudflare 上の他ゾーンへも、Cloudflare 上にない他のホスト名へもリダイレクトできます。

役に立ちましたか?