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 を参照してください。