ウェブエンジンを含む主要なウェブブラウザで使用される PAC 表記規則では、変更された正規表現シンタックスを使用します。 これまで、pacmanager は通常の正規表現を使用してマッチングを行っていました。 ブラウザと同様のマッチングを使用するため、shExpMatch 関数を変更しています。

この変更により、RoomOS はネットワーク内の他のウェブクライアントと同じ PAC ファイルでマッチングを行います。 RoomOS 専用に作成された PAC ファイルは、意図した動作を維持するために更新が必要な可能性があります。

PAC ファイルの評価は、RoomOS ソフトウェアの 2 か所で行われます。

  • 独自のトラフィック用のウェブエンジン。

  • 他のすべての HTTP トラフィックの pacmanager: HttpFeedback、Webex プロビジョニング、コールシグナリングなど。

PAC ファイルでは、shExpMatch(string, pattern) 関数を使用できます。

文字列がパターンと一致する場合は true、それ以外は false を返します。

この 2 つの表記方法の主な違いは次のとおりです。「REGEX」は従来の正規表現、「BROWSER」はウェブブラウザの表記を指します。

ピリオド「.」

  • REGEX: 「.」は 1 つの文字に一致します。これは、量指定子を用いて繰り返すことができます。

  • BROWSER: 「.」はそのまま、ピリオドとしてマッチングします。

アスタリスク「*」:

  • REGEX: 「*」は項目の後の 0 個以上の量指定子ですが、それ自身のマッチングはしません。

  • BROWSER: 「*」は 0 個以上の文字と一致します。

疑問符「?」:

  • REGEX: 「?」は項目の後の 0 または 1 の量指定子、または「*」量指定子を非グリーディに変更できますが、それ自身のマッチングはしません。

  • BROWSER: 「?」は 1 文字とマッチングします。

表現全体がマッチングするかどうかは次の通りです。

  • REGEX: 先頭の「ˆ」および末尾の「$」を使用しない場合、パターンは文字列全体と必ずしも一致している必要はありません。文字列に一致する部分があればマッチしていると見なされます。

  • BROWSER: 常に文字列がパターンと完全に一致している必要があります。

「provider.domain」のすべてのホスト名と一致するが、「otherprovider.domain」、「provider.domain.tld」、「providersdomain」は一致しないようにします。

REGEX:

shExpMatch(url, "ˆ.*\\.provider\\.domain$")

BROWSER:

shExpMatch(url, "*.provider.domain")

「proxy1.domain」、「proxy2.domain」などと一致するが、「proxytest.domain」は一致しないようにします。

REGEX:

shExpMatch(url, "ˆproxy.\\.domain$")

BROWSER:

shExpMatch(url, "proxy?.domain")

他のリソース

PAC ファイル形式の詳細については、https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file を参照してください。