ルール設定
このページでは、Redirect Webアプリのルール編集画面にある各設定の詳細情報を提供します。
オプション
タイプ
アプリがリダイレクトをどのように処理するかを制御するために、タイプオプションを指定します。以下から選択できます。
- オリジナル (デフォルト)
- これは、従来からのWeb APIを使用してリダイレクトを制御します。さらに、フォールバックとしてTabs APIを使用します。
- Firefoxでは、WebRequest APIを使用してリダイレクトを処理します。
- リソースタイプとリクエストメソッド以外のすべてのオプションを使用できます。
- これは「宣言型」タイプよりも遅く、余分なネットワークリクエストが発生する可能性があります。
- これは、従来からのWeb APIを使用してリダイレクトを制御します。さらに、フォールバックとしてTabs APIを使用します。
- DNR (Safari向け実験的機能):
リダイレクト元
リダイレクト元オプションでは、リダイレクト元のウェブページのURLパターンを指定できます。ワイルドカードまたは正規表現のいずれかを選択できます。
たとえば、ワイルドカードでhttps://example.com/*
を指定すると、https://example.com/
またはhttps://example.com/hello
に一致します。
リダイレクト先オプションでは、$0
を使用して全体の一致を参照したり、$1
、$2
などを使用して部分的な一致を参照したりできます。詳細については、このページのURLパターンを確認してください。
リソースタイプ
リソースタイプオプションでは、画像、JavaScript、スタイルシートなど、ルールが適用されるウェブ要求のカテゴリを指定できます。
たとえば、script
を設定すると、ウェブページによって読み込まれる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など、同じブラウザのバリアントを区別しません。
- ユーザー指定のブラウザ: ポップオーバーの追加ボタンをタップすることで、SafariまたはSafari Technology Preview以外の、Redirect Web拡張機能がインストールされている任意のブラウザを選択できます。
- 選択したものを除くすべてチェックボックスを使用すると、選択したブラウザを除くすべてのブラウザをターゲットにできます。
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
などを使用して置換できるキャプチャグループをどのように処理するかを指定できます。
キャプチャグループを作成する方法は次のとおりです。
- ワイルドカード:
*
と?
に一致するテキストは自動的にキャプチャされます。 - 正規表現:
()
内のパターンの一部に一致するテキストがキャプチャされます。
次のプロセスの1つ以上を選択できます。
- 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パターン
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などのリソースで確認できます。