Trong PAC, shExpMatch dùng ký tự đại diện kiểu shell. Với các tên miền con của example.com:

if (shExpMatch(host, "*.example.com")) {
    return "PROXY proxy.example:8080";
}

Hãy dùng các điểm cuối HTTP mà chính sách đã chọn trong các giá trị trả về này; danh sách proxy HTTP cung cấp ứng viên cho các tuyến công cộng được phép. Dấu hoa thị khớp với một chuỗi ký tự. Nó không phải toán tử lặp của biểu thức chính quy, nên một .*example.com trông giống regex sẽ làm thay đổi ý nghĩa.

Hãy ghi rõ tên miền cha chính xác khi nó thuộc chính sách:

if (host === "example.com" || shExpMatch(host, "*.example.com")) {
    return "PROXY proxy.example:8080";
}

Dùng *example.com thay vào đó cũng sẽ chấp nhận các tên kết thúc bằng những chữ cái đó mà không có dấu chấm phân cách. Điều đó mở rộng tập hợp vượt quá ranh giới tên miền dự kiến.

Nền tảng ký tự đại diện PAC di động bao gồm * và ?; các lớp ký tự khác nhau tùy theo cách triển khai. Biểu thức chính quy JavaScript thì dùng test() cùng các quy tắc neo và thoát riêng của nó.

Khớp với đầu vào dự kiến. host là tên máy chủ, còn url bao gồm lược đồ và có thể đã được làm sạch. Một quy tắc tên miền không nên vô tình phụ thuộc vào một đường dẫn mà trình duyệt không bao giờ cung cấp.

Bài viết liên quan