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

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

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

    توجه: دسترسی به URL های 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;

معنای " * " به این بستگی دارد که در طرح ، میزبان یا قسمت مسیر باشد. اگر طرح * باشد، آنگاه با http یا https مطابقت دارد و نه file ، ftp یا urn . اگر میزبان فقط * باشد، با هر میزبانی مطابقت دارد. اگر میزبان *._hostname_ باشد، با میزبان مشخص شده یا هر یک از زیردامنه های آن مطابقت دارد. در بخش مسیر ، هر " * " با 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 شروع می شود مطابقت دارد file:///foo/bar.html
file:///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: شروع می شود مطابقت دارد. urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls> با هر URL که از طرح مجاز استفاده می کند مطابقت دارد. (برای لیست طرح های مجاز به ابتدای این بخش مراجعه کنید.) http://example.org/foo/bar.html
file:///bar/baz.html

در اینجا چند نمونه از تطابق الگوی نامعتبر آورده شده است:

الگوی بد چرا بد است
http://www.google.com بدون مسیر
http://*foo/bar "*" در میزبان فقط می تواند با یک "" دنبال شود. یا '/'
http://foo.*.bar/baz اگر «*» در میزبان باشد، باید اولین کاراکتر باشد
http:/bar جداکننده طرح وجود ندارد ("/" باید "//" باشد)
foo://* طرح نامعتبر

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