Mẫu so khớp

Quyền của máy chủ và việc so khớp tập lệnh nội dung sẽ dựa trên một tập hợp URL do mẫu so khớp xác định. Về cơ bản, mẫu so khớp là một URL bắt đầu bằng một giao thức được phép (http, https, file hoặc ftp, và có thể chứa các ký tự "*". Mẫu đặc biệt <all_urls> khớp với mọi URL bắt đầu bằng lược đồ được cho phép. Mỗi mẫu khớp sẽ có 3 phần:

  • lược đồ — ví dụ: http, file hoặc *

    Lưu ý: Quyền truy cập vào các URL file không tự động. Người dùng phải truy cập vào trang quản lý tiện ích và chọn cấp quyền truy cập file cho mỗi tiện ích yêu cầu quyền đó.
  • host – ví dụ: www.google.com hoặc *.google.com hoặc *; nếu giao thức là file, thì sẽ không có phần host nào

  • path – ví dụ: /*, /foo* hoặc /foo/bar. Đường dẫn phải có trong quyền của máy chủ, nhưng luôn được coi là /*.

Dưới đây là cú pháp cơ bản:

&lt;url-pattern&gt; := &lt;scheme&gt;://&lt;host&gt;&lt;path&gt;
&lt;scheme&gt; := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
&lt;host&gt; := '*' | '*.' &lt;any char except '/' and '*'&gt;+
&lt;path&gt; := '/' &lt;any chars&gt;

Ý nghĩa của "*" tuỳ thuộc vào việc mục đó nằm trong phần lược đồ, máy chủ hay đường dẫn. Nếu lược đồ (scheme) là *, thì nó sẽ khớp với http hoặc https chứ không phải file, ftp hoặc urn. Nếu máy chủ chỉ là *, thì máy chủ đó sẽ khớp với mọi máy chủ lưu trữ. Nếu máy chủ*._hostname_, thì máy chủ lưu trữ này sẽ so khớp với máy chủ lưu trữ đã chỉ định hoặc bất kỳ miền con nào của máy chủ đó. Trong phần path (đường dẫn), mỗi "*" khớp với 0 ký tự trở lên. Bảng sau đây cho thấy một số mẫu hợp lệ.

MẫuÝ nghĩaVí dụ về URL phù hợp
http://*/*Khớp với mọi URL sử dụng lược đồ httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*So khớp mọi URL sử dụng lược đồ http trên mọi máy chủ lưu trữ, miễn là đường dẫn bắt đầu bằng /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barSo khớp với mọi URL sử dụng lược đồ https và nằm trên máy chủ google.com (chẳng hạn như www.google.com, docs.google.com hoặc google.com), miễn là đường dẫn bắt đầu bằng /foo và kết thúc bằng barhttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlKhớp với URL được chỉ địnhhttp://example.org/foo/bar.html
file:///foo*Khớp với mọi tệp cục bộ có đường dẫn bắt đầu bằng /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*Khớp với mọi URL sử dụng lược đồ http và nằm trên máy chủ 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Khớp với mọi URL bắt đầu bằng http://mail.google.com hoặc https://mail.google.com.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Khớp với mọi URL bắt đầu bằng urn:.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Khớp với mọi URL sử dụng lược đồ được phép. (Xem danh sách các giao thức được phép ở phần đầu của phần này.)http://example.org/foo/bar.html
file:///bar/baz.html

Dưới đây là một số ví dụ về trường hợp so khớp mẫu không hợp lệ:

Hình mở khoá không hợp lệTại sao sản phẩm này không tốt
http://www.google.comKhông có đường dẫn
http://*foo/barTheo sau dấu "*" trong máy chủ chỉ có thể đứng sau dấu "." hoặc "/"
http://foo.*.bar/baz Nếu "*" nằm trong máy chủ, thì đó phải là ký tự đầu tiên
http:/barThiếu dấu phân tách lược đồ ("/" phải là "//")
foo://*Lược đồ không hợp lệ

Một số lược đồ không được hỗ trợ trong mọi ngữ cảnh.