ルール設定
このページでは、Redirect Webアプリのルール編集画面にある各設定の詳細情報を提供します。
オプション
タイプ
タイプオプションを指定して、アプリがリダイレクトを処理する方法を制御します。以下から選択できます。
- Original (デフォルト)
- これは、従来からあるWeb APIを使用してリダイレクトを制御します。さらに、フォールバックとしてTabs APIを使用します。
- Firefoxでは、WebRequest APIを使用してリダイレクトを処理します。
- リソースタイプとリクエストメソッド以外のすべてのオプションを使用できます。
- これはDeclarativeタイプよりも処理が遅く、余分なネットワークリクエストを発生させる可能性があります。
- これは、従来からあるWeb APIを使用してリダイレクトを制御します。さらに、フォールバックとしてTabs APIを使用します。
- DNR (Safari向け試験的機能):
リダイレクト元
リダイレクト元オプションを使用すると、リダイレクトしたいWebページのURLパターンを指定できます。 ワイルドカードまたは正規表現のいずれかを選択できます。
例えば、ワイルドカードでhttps://example.com/*
を指定した場合、https://example.com/
やhttps://example.com/hello
にマッチします。
リダイレクト先オプションでは、マッチ全体を$0
で、部分的なマッチを$1
、$2
などで参照できます。詳細については、このページのURLパターンを確認してください。
リソースタイプ
リソースタイプオプションを使用すると、画像、JavaScript、スタイルシートなど、ルールが適用されるWebリクエストのカテゴリを指定できます。
例えば、script
を設定すると、Webページによって読み込まれるJavaScriptファイルをリダイレクトできます。
現在、以下が利用可能です。
main_frame
、sub_frame
、stylesheet
、script
、image
、font
、xmlhttprequest
、ping
、media
、websocket
、other
デフォルト設定はmain_frame
で、これはタブに読み込まれる最上位のページです。
各リソースタイプの詳細については、mdn web docsを確認してください。
リクエストメソッド
リクエストメソッドオプションを使用すると、ソースURLのターゲットHTTPメソッドを設定できます。
すべてのメソッドがデフォルトで設定されています。
各メソッドの詳細については、mdn web docsを確認してください。
Safariでは、AppleのDNRタイプの実装が現在これを処理していないように見えるため、このオプションは利用できない可能性があります。フィードバックFB14502272をAppleに送信しました。
ターゲットブラウザ
ターゲットブラウザオプションを使用すると、ルールを適用する、または適用しないブラウザを指定できます。
- 選択できるブラウザは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
アプリケーション
宛先URLを開きたいアプリを指定したい場合は、アプリケーションコンボボックスを使用します。これはmacOSでのみ利用可能です。
App Sandboxをサポートするアプリのみを開くことができます。また、開きたいURLのオープンをそのアプリがサポートしていることを確認してください。
キャプチャグループ処理
キャプチャグループ処理オプションを使用すると、リダイレクト先オプションで$1
、$2
などで置換できるキャプチャグループをどのように処理するかを指定できます。
キャプチャグループを作成する方法は以下の通りです。
- ワイルドカード:
*
と?
にマッチするテキストは自動的にキャプチャされます。 - 正規表現:
()
内のパターンの一部にマッチするテキストはキャプチャされます。
以下のいずれか、または複数の処理を選択できます。
- URLエンコード/デコード: これは、キャプチャグループにパーセントエンコーディングまたはデコードを適用します。例えば、
https://example.com/hello
をエンコードするとhttps%3A%2F%2Fexample.com%2Fhello
に変換されます。デコードはその逆を行います。 - Base64エンコード/デコード: これは、テキストをBase64にエンコード/デコードします。例えば、
hello
をaGVsbG8=
にエンコードし、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パターン
除外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のようなリソースで見つけることができます。