مجوزهای میزبان و تطبیق اسکریپت محتوا بر اساس مجموعهای از URLها هستند که توسط الگوهای تطبیق تعریف میشوند. یک الگوی تطبیق اساساً URL ای است که با یک طرح مجاز ( http ، https ، file یا ftp ) شروع میشود و میتواند شامل کاراکترهای ' * ' باشد. الگوی ویژه <all_urls> با هر URL که با یک طرح مجاز شروع شود، مطابقت دارد. هر الگوی تطبیق دارای 3 بخش است:
طرحواره - برای مثال،
httpیاfileیا*توجه: دسترسی به آدرسهای اینترنتیfileخودکار نیست. کاربر باید به صفحه مدیریت افزونهها مراجعه کند و برای هر افزونهای که درخواست دسترسیfileرا میدهد، آن را انتخاب کند.میزبان — برای مثال،
www.google.comیا*.google.comیا*؛ اگر طرحfileباشد، بخش میزبان وجود نداردمسیر — برای مثال،
/*،/foo*، یا/foo/bar. مسیر باید در مجوز میزبان وجود داشته باشد، اما همیشه به صورت/*در نظر گرفته میشود.
سینتکس پایه به این صورت است:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
معنی ' * ' بستگی به این دارد که در بخش scheme ، host یا path باشد. اگر scheme با * باشد، با http یا https مطابقت دارد و file ، ftp یا urn مطابقت ندارد . اگر host فقط با * باشد، با هر host مطابقت دارد. اگر host با *._hostname_ باشد، با host مشخص شده یا هر یک از زیر دامنههای آن مطابقت دارد. در بخش path ، هر ' * ' با 0 یا چند کاراکتر مطابقت دارد. جدول زیر برخی از الگوهای معتبر را نشان میدهد.
| الگو | چه کاری انجام میدهد؟ | نمونههایی از URLهای منطبق |
|---|---|---|
http://*/* | با هر URL که از طرح http استفاده میکند، مطابقت دارد. | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | با هر URL که از طرح http استفاده میکند، روی هر میزبانی، تا زمانی که مسیر با /foo شروع شود، مطابقت دارد. | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | با هر URL ای که از طرح https استفاده میکند، روی هاست google.com قرار دارد (مانند www.google.com، docs.google.com یا google.com)، تا زمانی که مسیر با /foo شروع و با bar تمام شود، مطابقت دارد. | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | با URL مشخص شده مطابقت دارد | http://example.org/foo/bar.html |
file:///foo* | با هر فایل محلی که مسیر آن با /foo شروع شود، مطابقت دارد. | فایل:///foo/bar.html فایل: ///foo |
http://127.0.0.1/* | با هر URL که از طرح http استفاده میکند و روی میزبان 127.0.0.1 است، مطابقت دارد. | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | با هر URL که با http://mail.google.com یا https://mail.google.com شروع شود، مطابقت دارد. | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | با هر URL که با urn: شروع شود، مطابقت دارد. | کد کالا: uuid:54723bea-c94e-480e-80c8-a69846c3f582 کد urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | با هر URL که از یک طرح مجاز استفاده میکند، مطابقت دارد. (برای فهرست طرحهای مجاز، به ابتدای این بخش مراجعه کنید.) | http://example.org/foo/bar.html فایل:///bar/baz.html |
در اینجا چند نمونه از تطابقهای الگوی نامعتبر آورده شده است:
| الگوی بد | چرا بد است؟ |
|---|---|
http://www.google.com | بدون مسیر |
http://*foo/bar | بعد از '*' در میزبان، فقط میتوان از '.' یا '/' استفاده کرد. |
http://foo.*.bar/baz | اگر '*' در میزبان باشد، باید اولین کاراکتر باشد |
http:/bar | جداکننده طرح وجود ندارد ("/" باید "//" باشد) |
foo://* | طرح نامعتبر |
برخی از طرحها در همه زمینهها پشتیبانی نمیشوند.