Übereinstimmungsmuster

Die Übereinstimmung von Hostberechtigungen und Inhaltsscripts basiert auf einer Reihe von URLs, die durch Übereinstimmungsmuster definiert werden. Ein Abgleichsmuster ist im Grunde eine URL, die mit einem zulässigen Schema (http, https, file oder ftp) beginnt und *-Zeichen enthalten kann. Das spezielle Muster <all_urls> stimmt mit jeder URL überein, die mit einem zulässigen Schema beginnt. Jedes Übereinstimmungsmuster besteht aus drei Teilen:

  • scheme: z. B. http, file oder *

    Hinweis:Der Zugriff auf file-URLs ist nicht automatisch möglich. Der Nutzer muss die Seite zur Verwaltung von Erweiterungen aufrufen und für jede Erweiterung, für die der Zugriff angefordert wird, den file-Zugriff aktivieren.
  • host, z. B. www.google.com, *.google.com oder *; wenn das Schema file ist, gibt es keinen host-Teil.

  • Pfad, z. B. /*, /foo* oder /foo/bar. Der Pfad muss in einer Hostberechtigung vorhanden sein, wird aber immer als /* behandelt.

Die grundlegende Syntax lautet:

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

Die Bedeutung von * hängt davon ab, ob es sich um den Teil schema, host oder path handelt. Wenn das Schema * ist, entspricht es entweder http oder https und nicht file, ftp oder urn. Wenn der Host nur * ist, entspricht er jedem Host. Wenn *._hostname_ als host angegeben ist, entspricht er dem angegebenen Host oder einer seiner Subdomains. Im Abschnitt path entspricht jedes * null oder mehr Zeichen. In der folgenden Tabelle sind einige gültige Muster aufgeführt.

MusterFunktionBeispiele für übereinstimmende URLs
http://*/*Entspricht jeder URL, die das http-Schema verwendethttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Entspricht jeder URL, die das http-Schema auf einem beliebigen Host verwendet, sofern der Pfad mit /foo beginnt.http://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barEntspricht jeder URL, die das https-Schema verwendet und sich auf einem google.com-Host wie www.google.com, docs.google.com oder google.com befindet, sofern der Pfad mit /foo beginnt und mit bar endet.https://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlEntspricht der angegebenen URLhttp://example.org/foo/bar.html
file:///foo*Entspricht jeder lokalen Datei, deren Pfad mit /foo beginnt.file:///foo/bar.html
file:///foo
http://127.0.0.1/*Entspricht jeder URL, die das http-Schema verwendet und sich auf dem Host 127.0.0.1 befindet.http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Entspricht jeder URL, die mit http://mail.google.com oder https://mail.google.com beginnt.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Entspricht jeder URL, die mit urn: beginnt.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Entspricht jeder URL, die ein zulässiges Schema verwendet. Eine Liste der zulässigen Schemas finden Sie am Anfang dieses Abschnitts.http://example.org/foo/bar.html
file:///bar/baz.html

Hier einige Beispiele für ungültige Musterübereinstimmungen:

Falsches MusterWarum das schlecht ist
http://www.google.comKein Pfad
http://*foo/barAuf „*“ im Host darf nur ein „.“ oder „/“ folgen.
http://foo.*.bar/baz Wenn „*“ im Host enthalten ist, muss es das erste Zeichen sein.
http:/barFehlendes Trennzeichen für das Schema („/“ muss „//“ sein)
foo://*Ungültiges Schema

Einige Schemas werden nicht in allen Kontexten unterstützt.