次の例では、リクエストのユーザーエージェント文字列に基づき、モバイル端末の訪問者を別のホスト名へリダイレクトします。
この静的リダイレクトの例は、現在のゾーン(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 上にない他のホスト名へもリダイレクトできます。