الگوها را مطابقت دهید

مجوزهای میزبان و تطبیق اسکریپت محتوا بر اساس مجموعه‌ای از URLها هستند که توسط الگوهای تطبیق تعریف می‌شوند. یک الگوی تطبیق اساساً URL ای است که با یک طرح مجاز ( http ، https ، file یا ftp ) شروع می‌شود و می‌تواند شامل کاراکترهای ' * ' باشد. الگوی ویژه <all_urls> با هر URL که با یک طرح مجاز شروع شود، مطابقت دارد. هر الگوی تطبیق دارای 3 بخش است:

  • طرحواره - برای مثال، http یا file یا *

    توجه: دسترسی به آدرس‌های اینترنتی file خودکار نیست. کاربر باید به صفحه مدیریت افزونه‌ها مراجعه کند و برای هر افزونه‌ای که درخواست دسترسی file را می‌دهد، آن را انتخاب کند.
  • میزبان — برای مثال، www.google.com یا *.google.com یا * ؛ اگر طرح file باشد، بخش میزبان وجود ندارد

  • مسیر — برای مثال، /* ، /foo* ، یا /foo/bar . مسیر باید در مجوز میزبان وجود داشته باشد، اما همیشه به صورت /* در نظر گرفته می‌شود.

سینتکس پایه به این صورت است:

&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;

معنی ' * ' بستگی به این دارد که در بخش 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://* طرح نامعتبر

برخی از طرح‌ها در همه زمینه‌ها پشتیبانی نمی‌شوند.