Web エンジンを含む主要なウェブブラウザで使用される PAC 規則は、修正された正規表現の構文を使用することです。これまでに、pacmanagerはマッチングに通常の正規表現を使用していました。ブラウザーに似たマッチングを使用するために、shExpMatch 関数を変更しています。
この変更により、RoomOS はネットワーク内の他の WEB クライアントと同じような PAC ファイルで機能します。RoomOS 用に特別に書かれた PAC ファイルを更新して、意図したとおりに動作し続ける必要があります。
PAC ファイルの評価は、RoomOS ソフトウェアの 2 つの別々の場所で実行されます。
-
独自のトラフィックのためのウェブ エンジン。
-
その他すべての HTTP トラフィックの Pacmanager: HttpFeedback、Webex プロビジョニング、コール シグナリングなど。
PAC ファイルでは、次の機能を使用できます。shExpMatch(文字列、パターン)
この関数は、文字列がパターンに一致する場合に true 、そうでない場合に false を返します。
2 つの規則の主な違いは、「REGEX」は従来の正規表現を意味し、「BROWSER」はウェブブラウザの規則を意味します。
ドット記号「.」
-
REGEX:. は 1 文字にマッチします。これはクオンタイザーで繰り返すことができます。
-
ブラウザ: . はリテラルド文字にのみ一致します
スター (*):
-
REGEX: * はアイテムの後の 0 個以上の量子化子ですが、それ自体には一致しません
-
ブラウザ: * は 0 文字以上と一致します
疑問符 "?":
-
REGEX: ? は項目の後の 0 または 1 の定量化子であり、* の定量化子を非貪欲に修正できますが、それ自体には一致しません。
-
ブラウザ: ? は 1 文字にマッチします
式全体が一致する必要があるかどうか:
-
regex: 先頭 ^ および末尾の $ を使用しない場合、パターンは文字列全体と一致する必要はありません。文字列に一致する部分文字列が含まれていれば十分です。
-
ブラウザ: 常に STRING をパターンに正確に一致させる必要があります
例
"provider.domain" のすべてのホスト名に一致しますが、"otherprovider.domain"、"provider.domain.tld"、"providersdomain"は一致しません。
regex:
shExpMatch(url, "^.*\\.provider\\.domain$")
ブラウザ:
shExpMatch(url, "*.provider.domain")
"proxy1.domain"、"proxy2.domain" などとマッチしますが、"proxytest.domain"はマッチしません。
regex:
shExpMatch(url, "^proxy.\\.domain$")
ブラウザ:
shExpMatch(url, "proxy?.domain")
その他のリソース
PAC ファイル形式の詳細については、 https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file を参照してください。