Webエンジンを含む主要なWebブラウザで使用されているPAC規則は、修正された正規表現構文を使用することです。 これまで、pacmanagerはマッチングに通常の正規表現を使用していました。 ShExpMatch関数を、ブラウザと同様のマッチングを使用するように変更しています。
この変更により、RoomOSはネットワーク上の他のウェブクライアントと同じPACファイルマッチで動作するようになります。 RoomOS用に特別に書かれたPACファイルは、意図したとおりに機能し続けるために更新する必要があるかもしれません。
PACファイルの評価は、RoomOSソフトウェアの2つの別々の場所で行われます。
-
独自のトラフィック用のウェブエンジン。
-
その他すべてのHTTPトラフィック用のパックマネージャー:HttpFeedback、Webexプロビジョニング、コールシグナリングなど。
PACファイルは次の機能を利用できます:ShExpMatch(文字列、パターン)
文字列がパターンと一致する場合は true を返し、そうでない場合は false を返します。
2つの規則の主な違いを以下に示します。「REGEX」は従来の正規表現を意味し、「BROWSER」はWebブラウザーの規則を意味します。
ドット記号、「。」
-
REGEX:. は1文字にマッチします。数量指定子で繰り返すことができます
-
ブラウザ:。リテラルドット文字のみと一致します
星「*」:
-
正規表現:*は項目の後にゼロ以上の数量詞ですが、それ自体では何にも一致しません
-
ブラウザ:* は 0 文字以上の文字にマッチします
疑問符、「?」:
-
正規表現:?項目の後に0または1の量指定子を付けたり、*の量指定子を欲張らないように変更したりできますが、それ自体では何にも一致しません
-
ブラウザ:?1文字に一致します
式全体が一致する必要があるかどうか:
-
REGEX:先頭の^と末尾に$を使用しなければ、PATTERNは文字列全体と一致する必要はありません。文字列に一致する部分文字列が含まれていれば十分です。
-
ブラウザ:文字列は常に PATTERN と完全に一致する必要があります
例
「プロバイダーのドメイン」のすべてのホスト名を一致させたいが、「他のプロバイダーのドメイン」、「プロバイダーのドメイン.tld」、または「プロバイダーのドメイン」は一致させたくありません。
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
「プロキシ1.ドメイン」、「プロキシ2.ドメイン」などと一致させたいが、「プロキシテストドメイン」とは一致させたくありません。
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 を参照してください。