メインコンテンツまでスキップ

ルール設定

このページでは、Redirect Webアプリのルール編集画面にある各設定の詳細情報を提供します。

オプション

タイプ

アプリがリダイレクトをどのように処理するかを制御するために、タイプオプションを指定します。以下から選択できます。

  • オリジナル (デフォルト)
    • これは、従来からのWeb APIを使用してリダイレクトを制御します。さらに、フォールバックとしてTabs APIを使用します。
      • Firefoxでは、WebRequest APIを使用してリダイレクトを処理します。
    • リソースタイプリクエストメソッド以外のすべてのオプションを使用できます。
    • これは「宣言型」タイプよりも遅く、余分なネットワークリクエストが発生する可能性があります。
  • DNR (Safari向け実験的機能):
    • このタイプは、ソースURLのネットワークリクエストを開始しないため、オリジナルタイプよりもはるかに高速に動作します。
    • これにより、リソースタイプリクエストメソッドを指定できます。
    • ⚠️ キャプチャグループ処理除外URLパターンなどの一部のオプションは、DNR APIでまだサポートされていないため、使用できません。
    • ⚠️ Safariでは、現在、正規表現パターンにパイプ(|)を含めることはできません。詳細
    • ⚠️ SafariのDNR APIにはまだいくつかの問題があるため、Safariではまだ実験的な機能であると考えています。既知のすべての問題のリストはこちらで確認できます。

リダイレクト元

リダイレクト元オプションでは、リダイレクト元のウェブページのURLパターンを指定できます。ワイルドカードまたは正規表現のいずれかを選択できます。

たとえば、ワイルドカードでhttps://example.com/*を指定すると、https://example.com/またはhttps://example.com/helloに一致します。

注記

リダイレクト先オプションでは、$0を使用して全体の一致を参照したり、$1$2などを使用して部分的な一致を参照したりできます。詳細については、このページのURLパターンを確認してください。

リソースタイプ

Supported Types: DNR

リソースタイプオプションでは、画像、JavaScript、スタイルシートなど、ルールが適用されるウェブ要求のカテゴリを指定できます。 たとえば、scriptを設定すると、ウェブページによって読み込まれるJavaScriptファイルをリダイレクトできます。

現在、これらが利用可能です。 main_framesub_framestylesheetscriptimagefontxmlhttprequestpingmediawebsocketother

デフォルト設定はmain_frameで、これはタブに読み込まれるトップレベルのページです。

各リソースタイプの詳細については、mdn web docsを確認してください。

リクエストメソッド

Supported Types: DNR

リクエストメソッドオプションでは、ソースURLのターゲットHTTPメソッドを設定できます。

すべてのメソッドがデフォルトで設定されています。

各メソッドの詳細については、mdn web docsを確認してください。

警告

Safariでは、AppleのDNRタイプの実装が現在これを処理していないように見えるため、このオプションは利用できない場合があります。FB14502272としてAppleにフィードバックを送信しました。

ターゲットブラウザ

Supported Platforms: macOS

ターゲットブラウザオプションでは、ルールを適用するブラウザまたは適用しないブラウザを指定できます。

  • 選択できるブラウザは2種類あります。
    • デフォルトで選択できるブラウザ: Safari、Chrome、Firefox、Edge、Opera、Arc、Brave、Vivaldiをデフォルトで選択できます。これは、SafariとSafari Technology Previewなど、同じブラウザのバリアントを区別しません。
    • ユーザー指定のブラウザ: ポップオーバーの追加ボタンをタップすることで、SafariまたはSafari Technology Preview以外の、Redirect Web拡張機能がインストールされている任意のブラウザを選択できます。
  • 選択したものを除くすべてチェックボックスを使用すると、選択したブラウザを除くすべてのブラウザをターゲットにできます。
警告

Redirect Webは、ブラウザがSafariSafari Technology Previewかを区別できません。これは、アプリが拡張機能の親プロセスをチェックして検出しますが、これら2つのブラウザは同じ親プロセス(/sbin/launchd)を共有しているためです。

リダイレクト先

リダイレクト先オプションは、リダイレクト元オプションに一致するソースURLからリダイレクトしたい宛先URLを指定します。$1$2などを使用してキャプチャグループを置換したり、$0を使用して全体の一致を置換したりすることもできます。これらは、宛先を動的に指定するのに役立ちます。詳細については、このページのURLパターンを確認してください。

たとえば、次のルールを設定した場合:

  • リダイレクト元: https://google.com/* (ワイルドカード)
  • リダイレクト先: https://apple.com/$1

そして、https://google.com/helloに一致した場合、宛先URLはhttps://apple.com/helloになります。

さらに、置換を行う前に$1$2などのテキストを変更できます。詳細については、キャプチャグループ処理セクションを確認してください。

ヒント

アプリを開くためにカスタムURLスキームを指定できます。これらはディープリンクをサポートするアプリの例です。

  • Figma: figma://file/Your_Figma_ID
  • Firefox: firefox://open-url?url=https://example.com/hello
  • Google Chrome: googlechromes://example.com
  • Microsoft Edge: microsoft-edge://example.com
  • Notion: notion://www.notion.so/Your_Note_ID
  • Slack: slack://open

アプリケーション

Supported Types: Original Supported Platforms: macOS

もし宛先URLを開きたいアプリを指定したい場合は、アプリケーションコンボボックスを使用します。これはmacOSでのみ利用可能です。

警告

App Sandboxをサポートするアプリのみを開くことができます。また、アプリが開きたいURLを開くことをサポートしていることを確認してください。

キャプチャグループ処理

Supported Types: Original

キャプチャグループ処理オプションでは、リダイレクト先オプションで$1$2などを使用して置換できるキャプチャグループをどのように処理するかを指定できます。

キャプチャグループを作成する方法は次のとおりです。

  • ワイルドカード: *?に一致するテキストは自動的にキャプチャされます。
  • 正規表現: ()内のパターンの一部に一致するテキストがキャプチャされます。

次のプロセスの1つ以上を選択できます。

  • URLエンコード/デコード: これは、キャプチャグループにパーセントエンコーディングまたはデコードを適用します。たとえば、https://example.com/helloをエンコードすると、https%3A%2F%2Fexample.com%2Fhelloに変換されます。デコードはその逆の動作をします。
  • Base64エンコード/デコード: これは、テキストをBase64にデコード/エンコードします。たとえば、helloaGVsbG8=にエンコードし、helloにデコードし直すことができます。
  • 出現箇所の置換: これは、ターゲットに一致するグループ内の1つ以上の文字を置換します。たとえば、グループhelloで、ターゲットlで、置換yの場合、heyyoに修正されます。
注記

これは各キャプチャグループを処理するためのものであり、除外URLパターンによって除外されるURLには影響しません。たとえば、次のルールがあるとします。

  • リダイレクト元: https://example.com/(hello.*)
  • キャプチャグループ処理:
    • グループ: $1
    • ターゲット: .* (正規表現)
    • 置換: hello
  • 除外URLパターン: https://example.com/hello

この場合、https://example.com/hello_worldは除外されず、https://example.com/helloは除外されます。

除外URLパターン

Supported Types: Original

除外URLパターンオプションでは、リダイレクトされないURLを指定できます。これは、リダイレクトループを回避したり、ウェブサイトの特定の部分がリダイレクトされないようにしたりするのに役立ちます。

正規表現またはワイルドカードパターンタイプのいずれかを使用して、除外URLパターンを指定できます。

オプションでは、サンプルURLを提供することでリダイレクトルールをテストできます。サンプルURLを追加することで、実際に適用する前にルールが期待どおりに機能するかどうかを確認できます。

コメント

コメントオプションでは、リダイレクトルールに関するメモやコメントを追加できます。これは、特定のルールを作成した理由を記録したり、他の人がルールを表示する際のコンテキストを提供したりするのに役立ちます。

URLパターン

1つ以上のURLパターンを指定できるオプションは3つあります。リダイレクト元除外URLパターンキャプチャグループ処理です。これらを指定するには、ワイルドカードまたは正規表現のいずれかを選択できます。

ワイルドカード

ワイルドカードは、*(何でも一致)と?(任意の1文字に一致)をワイルドカードとして使用できるシンプルなパターンタイプです。以下にいくつかの例を示します。

  • https://example.com/helloに一致させるには、https://example.com/*を使用できます。これはhttps://example.com/の後の任意の文字列に一致します。
  • https://example.com/search?q=helloに一致させるには、https://example.com/search?q=*を使用できます。これはqパラメータの任意の値に一致します。
  • blogという単語を含む任意のURLに一致させるには、*blog*を使用できます。

ワイルドカードでも置換を使用できます。つまり、$1$2などを使用して一致したURLの一部を参照できます。たとえば、https://example.com/*-world-*を使用し、URLがhttps://example.com/hello-world-goodbyeの場合、$1は「hello」、$2は「goodbye」になります。$0も利用可能で、一致したURL全体を参照します。

[!Note] 置換は正規表現の機能ですが、Redirect Webは内部的にワイルドカードを正規表現に変換するため、ワイルドカードでも使用できます。

正規表現

正規表現(Regex)は、テキスト内のパターンを照合するための強力なツールであり、こちらで説明されているAppleの正規表現エンジンによって強化されています。これにより、一連の文字列に一致する特定のパターンを定義できます。以下にいくつかの例を示します。

  • https://example.com/helloに一致させるには、https://example.com/(.*)を使用できます。これはhttps://example.com/の後の任意の文字列に一致し、キャプチャグループに保存します。
  • https://example.com/search?q=helloに一致させるには、https://example.com/search\?q=(.*)を使用できます。これはqパラメータの値に一致し、キャプチャグループに保存します。
  • blogという単語を含む任意のURLに一致させるには、.*blog.*を使用できます。

リダイレクト先または置換$1$2などを使用してキャプチャグループを参照したり、$0を使用して全体の一致を参照したりできます。

正規表現の構文に関する詳細情報は、RegExrなどのリソースで確認できます。