Mẫu so khớp

Việc so khớp quyền của máy chủtập lệnh nội dung dựa trên một tập hợp URL được xác định theo mẫu khớp. Về cơ bản, mẫu 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 ký tự "*". Mẫu đặc biệt <all_urls> khớp với mọi URL bắt đầu bằng một lược đồ được phép. Mỗi mẫu khớp có 3 phần:

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

    Lưu ý: Quyền truy cập vào 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 từng tiện ích yêu cầu quyền này.
  • máy chủ lưu trữ – ví dụ: www.google.com hoặc *.google.com hoặc *; nếu lược đồ là file, thì không có phần máy chủ lưu trữ

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

Sau đâ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 "*" phụ thuộc vào việc thuộc phần lược đồ, máy chủ lưu trữ hay đường dẫn. Nếu lược đồ*, thì lược đồ đó sẽ khớp với http hoặc httpskhông khớp vớ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ủ. Nếu máy chủ lưu trữ*._hostname_, thì máy chủ lưu trữ đó sẽ 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ủ lưu trữ đó. 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 khớp
http://*/*Khớp với mọi URL sử dụng giao thức httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Khớp với 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*barKhớp với mọi URL sử dụng giao thức https, 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 đã 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ủ lưu trữ 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 phần đầu của mục này để biết danh sách các giao thức được phép.)http://example.org/foo/bar.html
file:///bar/baz.html

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

Mẫu không hợp lệLý do không nên làm như vậy
http://www.google.comKhông có đường dẫn
http://*foo/barChỉ có thể theo sau "*" trong máy chủ bằng "." hoặc "/"
http://foo.*.bar/baz Nếu "*" nằm trong máy chủ lưu trữ, thì đó phải là ký tự đầu tiên
http:/barThiếu dấu phân cách lược đồ ("/" phải là "//")
foo://*Lược đồ không hợp lệ

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