ルール設定
このページでは、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タイプの実装が現在これを処理していないように見えるため、このオプションは利用できない場合があります。AppleにはFB14502272としてフィードバックを送信しました。
ターゲットブラウザ
ターゲットブラウザ オプションを使用すると、ルールを適用する、または適用しないブラウザを指定できます。
- 選択できるブラウザは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は同じ親プロセス (/sbin/launchd
) を共有しているため、SafariとSafari Technology Previewを区別できません。
リダイレクト先
リダイレクト先 オプションは、「リダイレクト元」オプションと一致したソース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を追加することで、実際に適用する前にルールが期待どおりに機能するかどうかを確認できます。
コメント
コメント オプションを使用すると、リダイレクトルールに関するメモやコメントを追加できます。これは、特定のルールを作成した理由を記録したり、ルールを閲覧する可能性のある他のユーザーにコンテキストを提供したりするのに役立ちます。
コメントは以下の形式で記述できます。
- プレーンテキスト (デフォルト): フォーマットなしのシンプルなテキスト。
- Markdown: GitHubのMarkdown構文を使用できます。GFMがサポートしていない一部の拡張機能も含まれます。例えば、見出し、リスト、リンクなどを作成できます。
- AsciiDoc: AsciiDoc構文を使用してコメントをフォーマットできます。
URLパターン
URLパターン は、「リダイレクト元」、「除外URLパターン」、「キャプチャグループ処理」オプションでURLを照合するために使用されます。これらを指定するには、ワイルドカード または 正規表現 のいずれかを選択できます。
ワイルドカード
ワイルドカード は、*
(任意のものに一致) と ?
(任意の単一文字に一致) をワイルドカードとして使用できる、よりシンプルなパターンタイプです。以下にいくつかの例を示します。
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全体を参照するために利用できます。
置換は正規表現の機能ですが、Redirect Webが内部的にワイルドカードを正規表現に変換するため、ワイルドカードでも使用できます。
正規表現
正規表現 (Regex) は、テキスト内のパターンを照合するための強力なツールであり、プログラミングでも広く使用されています。これは、一連の文字列に一致する特定のパターンを定義することを可能にします。以下にいくつかの例を示します。
https://example.com/hello
に一致させるには、https://example.com/.*
を使用できます。これはhttps://example.com/
の後の任意の文字列に一致します。https://example.com/search?q=hello
に一致させるには、https://example.com/search\?q=(.*)
を使用できます。これはq
パラメータの値を照合し、キャプチャグループに格納します。その後、「リダイレクト先」オプションで$1
を使用して参照できます。blog
という単語を含む任意のURLに一致させるには、.*blog.*
を使用できます。
「リダイレクト先」または「置換」で $1
、$2
、... を使用してキャプチャグループを参照したり、$0
を使用して全体の一致を参照したりできます。
Redirect WebはAppleの正規表現エンジンによって動作しています。
正規表現の構文に関する詳細情報は、RegExrなどのリソースで見つけることができます。