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

ルール設定

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

オプション

タイプ

タイプオプションを指定して、アプリがリダイレクトを処理する方法を制御します。以下から選択できます。

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

リダイレクト元

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

例えば、ワイルドカードでhttps://example.com/*を指定した場合、https://example.com/https://example.com/helloにマッチします。

注記

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

リソースタイプ

Supported Types: DNR

リソースタイプオプションを使用すると、画像、JavaScript、スタイルシートなど、ルールが適用されるWebリクエストのカテゴリを指定できます。 例えば、scriptを設定すると、Webページによって読み込まれる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のような同じブラウザのバリアントを区別しません。
    • ユーザーが指定したブラウザ: ポップオーバーの追加ボタンをタップすることで、Redirect Web拡張機能がインストールされているSafariまたはSafari Technology Preview以外の任意のブラウザを選択できます。
  • 選択したもの以外すべてチェックボックスを使用すると、選択したブラウザ以外のすべてのブラウザをターゲットにできます。
警告

Redirect Webは、ブラウザがSafariなのかSafari 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などで置換できるキャプチャグループをどのように処理するかを指定できます。

キャプチャグループを作成する方法は以下の通りです。

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

以下のいずれか、または複数の処理を選択できます。

  • 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パターン

URLパターンを1つ以上指定できるオプションが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*を使用できます。

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

[!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のようなリソースで見つけることができます。